我想知道是否有可能重寫第三方jar文件中的受保護方法。我猜測我可以使用反射來調用該方法,但是我將如何完全覆蓋它?在受保護的方法內修改代碼
的方法是
protected void a(World world, int i, int j, int k, ItemStack itemstack) {
if (!world.isStatic && world.getGameRules().getBoolean("doTileDrops")) {
float f = 0.7F;
double d0 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double d1 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double d2 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
EntityItem entityitem = new EntityItem(world, (double) i + d0, (double) j + d1, (double) k + d2, itemstack);
entityitem.pickupDelay = 10;
world.addEntity(entityitem);
}
}
如果從屬於它的類繼承,則可以在自己的包外部「覆蓋」受保護的方法。 – 2014-12-02 05:44:58
我沒有收到您的問題。如果它是受保護的方法,則可以通過擴展該類來覆蓋它。檢查[Java Access Modifiiers](http://www.tutorialspoint.com/java/java_access_modifiers.htm) – Vikas 2014-12-02 05:45:51
我知道我可以覆蓋它,但我不知道如何讓其他插件使用重寫的方法。 – 97WaterPolo 2014-12-02 06:01:23