Tag: 扩展

Java Reflection getConstructor方法

假设我有A和B类,其中B延伸A 我在B也有一个构造函数,其中一个参数是A类型。 我还有一个名为bObj B型对象。 有没有办法调用B.class.getConstructor(new Class[] { bObj.getClass() })并获得构造函数,因为B扩展了A ? 目前我正在获得NoSuchMethodException 。 此致,斯坦

Java通配符和generics? 超级T和? 延伸T.

当处理通配符,如设置/添加通用项目到某个容器时,是否建议使用这样的东西? void add(List someList,someitem){ someList.add(someItem); } 当检索项目时,建议使用这样的东西 void f1(List obj, T item) { obj.add(item); } 这背后的原理是什么? 我什么时候才能知道我是否应该使用它?

枚举中的可配置值

我经常在我的代码中使用这个设计来维护可配置的值。 考虑以下代码: public enum Options { REGEX_STRING(“Some Regex”), REGEX_PATTERN(Pattern.compile(REGEX_STRING.getString()), false), THREAD_COUNT(2), OPTIONS_PATH(“options.config”, false), DEBUG(true), ALWAYS_SAVE_OPTIONS(true), THREAD_WAIT_MILLIS(1000); Object value; boolean saveValue = true; private Options(Object value) { this.value = value; } private Options(Object value, boolean saveValue) { this.value = value; this.saveValue = saveValue; } public void setValue(Object value) { this.value = value; } public Object getValue() […]

内在的阶级延伸

在java中,假设我有以下类: public class A{ protected class B{ } } 我可以通过以下方式扩展内部类吗? public class C extends A{ protected class D extends B{ } } 我想要做的是我有上面的C类,我需要在A的内部类中改变一些东西,所以我认为我需要扩展内部类来这样做,但我不确定如何做到这一点。

使用注释扩展hibernate实体

我需要扩展一个具有相同特征的实体,而不使用抽象类。 我可以编码下面的代码吗? @Entity @Table(name=”ABC”) @SequenceGenerator(sequenceName=”SEQ_ABC”,name=”idGenerator”,allocationSize=1) public class Abc { .. // define members } @Entity @Table(name=”EX_ABC”) public class ExAbc extends Abs { .. // define extras.. } 提前thx

在一个扩展Java中另一个类的类中有两个具有相同名称的变量

以下是我的项目代码的一部分: public class Body extends Point{ public double x, y, mass; public Body() { x = y = mass = 0; } public Body(double x, double y, double mass) { this.mass = mass; this.x = x; this.y = y; } } public class Point { public double x; public double y; public Point(double x, double […]

Java为什么接口扩展接口

我想知道在什么情况下我们从接口扩展接口? 因为,例如 interface A{ public void method1(); } interface B extends A{ public void method2(); } class C implements B{ @Override public void method1(){} @Override public void method2(){} } 不等于 interface A{ public void method1(); } interface B{ public void method2(); } class C implements A, B{ @Override public void method1(){} @Override public void method2(){} […]

Java Generics扩展了类参数

我收到一个错误,我的程序中有这个结构 public interface Shapes{ //methods here } public class ShapeAction implements Shapes{ //Methods and implementations here } public class Circle extends ShapeAction{ //Some methods here } 错误指向类Circle扩展Shapes < T >,其中显示“T无法解析为类型”。 如果我将T设置为字符串,则错误将消失,但这也意味着我只能使用一种数据类型。 我应该把什么放在中,以便我可以使用任何数据类型(String,int,double等)或者我做错了吗?

Java使用范围分辨率/“点”运算符“扩展”?

我在阅读一些代码时遇到过这个问题,我完全不知道它意味着什么。 我尝试使用谷歌搜索等等但我没有得到任何东西,可能是由于缺乏词汇量。 代码: public final class GeneralPath extends Path2D.Float { // code and whathaveyou } 到目前为止我所知道的: 所以我对“公共最终类ClassName extends”部分没有任何疑问,但我不明白超类指定中是否存在点/范围解析运算符。 对于初学者,我想有人会说“Java没有范围解析运算符”来澄清Java和Cpp / other-OOP语言之间的细微差别,这很好,我很高兴知道这种微妙的区别。 “private”关键字在一次hw任务中杀了我一次,我希望有人注意到Java和C中“private”之间的区别。 我很困惑,因为显然它没有引用超类的成员,因为“成员”是大写的,即使它是,但引用一个对象的成员而不仅仅是对象类本身似乎是多余的。 此外,我没有找到关于这个主题的信息,因为大多数编写java how-to的人倾向于从更简单的概念开始,比如“基本”类inheritance,所以我找不到涉及“dot”运算符的任何东西。使用“extends”关键字。 如果我使用太多技术术语,我想知道为什么他们使用点运算符“Path2D.Float”,或者至少,点运算符在这个上下文中做了什么。 太感谢了!

在Java中在运行时扩展或添加新类

有没有办法在运行时在java中添加(或扩展现有的)类。 我遇到了一个问题,我必须在运行时扩展现有的类并将其添加到类路径中,以便获取这个新类。 谢谢,