みんながゆっくりしていけるようなマインクラフト非公式フォーラムです。
コンテンツへ
by おがさくら » 2021年12月18日(土) 21:12
返信遅れてすみません&ありがとうございます これ以上は解決できそうにないので諦めることにします...
by penM » 2021年11月30日(火) 11:28
予想なのですが、 public static StringSE getMethodDescriptor(Type returnType,Type... argumentTypes) におけるType returnTypeとは、
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.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.~_TYPE
Type.getMethodDescriptor(void, Type.getObjectType("net/minecraft/tileentity/TileEntity"))
ここで、 Type.getObjectType に関してですが、
Type.getObjectType
getObjectType public static Type getObjectType(StringSE internalName) 指定された内部名に対応する Type を返します。
getObjectType
public static Type getObjectType(StringSE internalName)
Type
とあります。 この関数が返すTypeとは、Type.VOID_TYPEのType.の部分を返しているのではないでしょうか?
Type.
そうすると getMethodDescriptor(Type.getObjectType("net/minecraft/item/ItemStack") , ~) のような表記は、getMethodDescriptorにintなのか、voidなのかを渡していないことになると思います。
getMethodDescriptor(Type.getObjectType("net/minecraft/item/ItemStack") , ~)
getMethodDescriptor
(java書いたこと無いので間違っていたら笑ってください )
by おがさくら » 2021年11月24日(水) 11:13
[この返信は削除されました]
by penM » 2021年11月21日(日) 22:28
おがさくら さんが書きました: ↑2021年11月19日(金) 20:14 スーパークラスのvisitMethodInsnに引数をそのまま入れて実行するのはできます Type.getObjectType("net/minecraft/item/ItemStack")をType.VOID_TYPEにして呼び出すメソッドもvoid型にするのもできました。 しかし、getMethodDescriptorの第一引数にType.getObjectType("net/minecraft/item/ItemStack")を入れると起動できなくなってしまいます。
スーパークラスのvisitMethodInsnに引数をそのまま入れて実行するのはできます Type.getObjectType("net/minecraft/item/ItemStack")をType.VOID_TYPEにして呼び出すメソッドもvoid型にするのもできました。 しかし、getMethodDescriptorの第一引数にType.getObjectType("net/minecraft/item/ItemStack")を入れると起動できなくなってしまいます。
getMethodDescriptorの第一引数はreturnType - メソッドの戻りの型なのに「argumentTypes - メソッドの引数の型」を入れるのが問題なのではないでしょうか?
by おがさくら » 2021年11月21日(日) 08:57
by penM » 2021年11月20日(土) 16:01
getObjectTypeの返り値がTypeでその際にint参照するんですかね?
by おがさくら » 2021年11月19日(金) 20:31
by おがさくら » 2021年11月19日(金) 20:14
by おがさくら » 2021年11月16日(火) 19:35
by penM » 2021年11月16日(火) 11:48
findMatchingRecipeを見る限り、こいつだけ@Nullableがついているようですが、どうでしょうか?
@Nullable
コード: 全て選択
@Nullable public ItemStack findMatchingRecipe(InventoryCrafting craftMatrix, World worldIn)
ページトップ
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean
プライバシーについて | 利用規約
Time: 0.029s | Peak Memory Usage: 1.14 MiB | GZIP: On