Tag: 类型

Java通用字段声明

在没有generics类型的类中,我想声明一个类似于这些的相当复杂的generics字段: public class Client { private Map<Class, List<Consumer>> classToConsumerTry1; private Map<Class, List<Consumer>> classToConsumerTry2; } promblem是java编译器不会让我:) 所以我的问题是如何在不向类Client添加类型的情况下正确引入T和S. 我的目标是强制Class是Serializable的子类型,而Consumer是您为Class选择的Class的子类型。

Javagenerics和generics类型

我有一个类ExtA,它包含一个filter函数来过滤ArrayList: public ExtA filt(…) { //code } 当我编译它给我错误:找不到符号 – 类T.为什么会这样?

我怎样才能贬低到class级’E型或至少在没有警告的情况下安全地进行?

我有超级抽象类Node和50种子类SubNode。 我有一个通用的Class ,它有一个私有var List 和一个方法,不幸的是它必须接受超类Node ALWAYS,不能将它移动到E: public void addSubElement (Node node){ if (node instanceOf E) subElements.add((E)node); else //Doing extra steps for occasional non-E nodes like discarding them silently without CastException; } 任何解决方案(Reflection?)能够在没有警告的情况下编译,抛出CastException而不是因为类型擦除而添加任何对象?? … 我不想为任何类型的子类编写相同的函数: public void addSubElement (Node node){ if (node instanceOf SubNode1) subElements.add((SubNode1)node); if (node instanceOf SubNode2) subElements.add((SubNode2)node); //if (node instanceOf SubNode50…. } 有一个像这样的方法会很好。 […]

为什么op-assign运算符在java中不安全?

我不确定问题的措辞是否明确,但一个例子会更清晰。 我发现它在Java中不起作用: int a = …; a = 5.0; 但这会: int a = …; a += 5.0; 即,似乎=运算符是类型安全的,但+ =不是。 这有什么深刻的理由,还是设计师必须采用的另一种任意决策语言。

为什么Java中有Primitive数据类型?

可能重复: 当我们有包装类时,为什么支持原语? 如果有Wrapper类使Java纯面向对象语言,那么为什么有可以在Java中使用的Primitive数据类型???

类型擦除:Java与C#

可能重复: C#vs Javagenerics Java使用Type erasure而C#在运行时保留类型信息,这种设计语言行为的实际差异是什么?

isAssignableFrom with reference和primitive类型

我想更好地理解原始和引用类型之间的Java中isAssignableFrom行为。 例如: System.out.println(boolean.class.isAssignableFrom(Boolean.class)); // false System.out.println(Boolean.class.isAssignableFrom(boolean.class)); // false boolean primitive; Boolean referenceType = true; primitive = referenceType; System.out.println(primitive); // true 我知道在分配原语时会引用装箱/取消装箱,但我认为因为isAssignableFrom会在上面的前两个例子中返回true。 有人可以解释为什么它返回false,这里适当的测试是什么?

在知道类时创建(盒装)原始实例

我需要一个方法来返回提供的类类型的实例。 假设所提供的类型被限制为可以创建它们的“空”实例。 例如,提供String.class将返回一个空String,提供Integer.class将返回一个初始值为零的Integer,依此类推。 但是我如何动态创建(盒装)原始类型? 像这样? public Object newInstance(Class type) { if (!type.isPrimitive()) { return type.newInstance(); // plus appropriate exception handling } else { // Now what? if (type.equals(Integer.class) || type.equals(int.class)) { return new Integer(0); } if (type.equals(Long.class) // etc…. } } 迭代所有可能的原始类型的唯一解决方案,还是有更简单的解决方案? 请注意两者 int.class.newInstance() 和 Integer.class.newInstance() 抛出InstantiationException (因为它们没有nullary构造函数)。

如何解析android volley gson请求到列表/对象集合

我正在尝试使用android排球发出Gson请求。 目前它正常工作,我很高兴。 但是,为什么我尝试获取List 或对象集合,我的代码不再有效。 当前代码: public class ReviewModel { public long Id; public Strring Description; } 这是我如何使用我的gson类: GsonRequest jsObjRequest = new GsonRequest(Request.Method.GET, url, ReviewModel.class, new Response.Listener() { @Override public void onResponse(ReviewModel response) { ReviewsHandleOkResponse(response); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { ReviewsHandleErrorResponse(error); } }); Network.getInstance(getActivity()).addToRequestQueue(jsObjRequest); } 这是我的Volley GSON请求类: public class GsonRequest […]

什么Java数据类型对应于Oracle SQL数据类型NUMERIC?

Oracle JDBC驱动程序为Oracle SQL数据类型NUMERIC分配了哪些Java数据类型? 这是否随NUMERIC类型的大小而变化?