java – 如何在不知道类名的情况下调用方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何在不知道类名的情况下调用方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1000字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何在不知道类名的情况下调用方法?](/upload/InfoBanner/zyjiaocheng/751/65607b77513c41528deef5a07a05e812.jpg)
我在下面定义了两个类:
public class junk {
private BigInteger a = BigIngeger.valueOf(1), b=BigInteger.valueOf(2), c;
public void DoSomething() {
c = a.add(b);
}
// ... other stuff here
}
public class junkChild extends junk {
private BigDecimal a = BigDecimal.valueOf(1), b=BigDecimal.valueOf(2), c;
// I want a, b, c to override the original BigInteger a,b,c
// ... other stuff here
}
public class myClass {
public static void main(String args[]) {
junk a1 = new junkChild();
a1.DoSomething();
}
}
不幸的是,上述方法无效.
我想要做的是简单地将a,b,c更改为junkChild中的BigDecimal,而无需再次重写DoSomething().即使我必须再次编写它,代码也会完全相同,所以应该有一种方法可以让它无需编写即可完成. DoSomething函数应该检查类型a1是否具有正确输入和返回类型的add方法,如果是,则调用它而不用担心a,b,c是什么类型.
可以这样做吗?
解决方法:
不,你不能这样做 – 至少在编译时不行.这两种添加方法实际上是无关的 – 它们不是来自界面或类似的东西.
你可以用反射来做(在为a,b和c或类似的东西添加属性之后 – 字段不能像这样被“覆盖”),但它不会非常好.
内容总结
以上是互联网集市为您收集整理的java – 如何在不知道类名的情况下调用方法?全部内容,希望文章能够帮你解决java – 如何在不知道类名的情况下调用方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。