[この返信は削除されました]
レシピの仕様変更でクラスの書き換えに失敗する
-
- 初心者
- 記事: 9
- 登録日時: 2020年11月15日(日) 20:49
- お住まい: 愛知県
- ウェブサイト: https://drive.google.com/drive/folders/ ... sp=sharing
Re: レシピの仕様変更でクラスの書き換えに失敗する
getMethodDescriptorの第一引数はreturnType - メソッドの戻りの型なのに「argumentTypes - メソッドの引数の型」を入れるのが問題なのではないでしょうか?
-
- 初心者
- 記事: 9
- 登録日時: 2020年11月15日(日) 20:49
- お住まい: 愛知県
- ウェブサイト: https://drive.google.com/drive/folders/ ... sp=sharing
Re: レシピの仕様変更でクラスの書き換えに失敗する
予想なのですが、
public static StringSE getMethodDescriptor(Type returnType,Type... argumentTypes)
におけるType returnType
とは、
Type.VOID_TYPE
Type.SHORT_TYPE
Type.LONG_TYPE
Type.INT_TYPE
Type.FLOAT_TYPE
Type.DOUBLE_TYPE
Type.CHAR_TYPE
Type.BYTE_TYPE
Type.BOOLEAN_TYPE
を指しているのではないでしょうか?
この根拠としては、参考サイトに
Type.getMethodDescriptor(Type.VOID_TYPE, Type.getObjectType("net/minecraft/tileentity/TileEntity"))
の記述があるためです。
そしてType.~_TYPE
は、java内部での基本タイプ(int,void,char)への単なる参照な気がします。
書き方があっているかわかりませんが、下記のように表記しても動きそうな気がします。
Type.getMethodDescriptor(void, Type.getObjectType("net/minecraft/tileentity/TileEntity"))
ここで、
Type.getObjectType
に関してですが、
getObjectType
public static Type getObjectType(StringSE internalName)
指定された内部名に対応するType
を返します。
とあります。
この関数が返すType
とは、Type.VOID_TYPE
のType.
の部分を返しているのではないでしょうか?
そうすると
getMethodDescriptor(Type.getObjectType("net/minecraft/item/ItemStack") , ~)
のような表記は、getMethodDescriptor
にintなのか、voidなのかを渡していないことになると思います。
(java書いたこと無いので間違っていたら笑ってください )
-
- 初心者
- 記事: 9
- 登録日時: 2020年11月15日(日) 20:49
- お住まい: 愛知県
- ウェブサイト: https://drive.google.com/drive/folders/ ... sp=sharing
Re: レシピの仕様変更でクラスの書き換えに失敗する
返信遅れてすみません&ありがとうございます
これ以上は解決できそうにないので諦めることにします...