[この返信は削除されました]
レシピの仕様変更でクラスの書き換えに失敗する
-
おがさくら
- 初心者
- 記事: 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_TYPEType.SHORT_TYPEType.LONG_TYPEType.INT_TYPEType.FLOAT_TYPEType.DOUBLE_TYPEType.CHAR_TYPEType.BYTE_TYPEType.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: レシピの仕様変更でクラスの書き換えに失敗する
返信遅れてすみません&ありがとうございます
これ以上は解決できそうにないので諦めることにします...