Tag: 类型

如何返回作为参数给出的相同Collection类型,但具有不同的元素类型?

我想做这个: public <C extends Collection> C strings_to_files(C strings) { C files = new C(); for(String string : strings) { files.add(new File(string) } return files; } 我只是希望它采取任何字符串集合,并返回与文件相同的集合类型。 有没有办法做到这一点? 或者我可能只是语法错误…

为什么自动装箱在arrays中不起作用?

我不明白为什么这段代码没有编译: Object[] arr = new int[3]; 我不需要这段代码。 我只是想了解自动装箱在这种情况下不起作用的原因 ?

在Java中键入cast into byte

我是Java的初学者。 我遇到了一个名为Type Casting的概念。 我有以下片段 – class Demo { byte b; int a=257; double d= 323.142 b=(byte)a; System.out.println(b); b=(byte)d; System.out.println(b); } 代码的输出是-167 任何人都可以向我解释输出。 提前致谢!

如何在Java中设计类型安全的堆栈,防止从空列表中弹出?

这是这两个问题的分支: 1,2 。 我想在Java中实现类型安全的数据结构,以防止无意义的操作。 例如,如果编译器知道我有一个空堆栈的实例,它不应该允许我在空堆栈上调用pop。 作为一个例子,我如何在Java中实现这样的(通用)堆栈?

字符串数组是否可变?

我想知道Java中的String数组是否可变? 我知道字符串是不可变的,但字符串数组怎么样? 如果我有一个字符串数组,并更改内容,是否会创建一个新的字符串对象? 或者实际值是否会改变? 提前致谢

Java:为什么不在这里发生自动装箱?

这给了我一个错误: int[] l = new int[] {0, 2, 192, -1, 3, 9, 2, 2}; int[] l2 = new int[] {9001, 7, 21, 4, -3, 11, 10, 10}; int[] l3 = new int[] {5, 5, 5, 64, 21, 12, 13, 200}; Set<List> lists = new HashSet<List>(); lists.add(Arrays.asList(l)); Eclipse:类型Set<List>的方法add(List)不适用于参数( List ) 我以为int应该被自动提交给Integer ?

在Java中转换为具体类和调用方法

假设我们有一个名为A的基类和一些子类( B , C , D等)。 大多数子类都有方法do()但基类没有。 AA类提供了一个名为getObject()的方法,它将创建一个B或C或D等的对象,但是将该对象作为类型A返回。 如果此方法可用,如何将返回的对象强制转换为具体类型并调用其do()方法? 编辑: 我不允许更改类A ,子类或AA ,因为我使用一个封闭的源API ..是的,它确实有一些设计问题,你可以看到。

从Java中的generics类型推断generics类型(编译时错误)

我有一个静态函数,带有以下签名的generics类型T public static List sortMap(Map map) 应返回带有某些属性的地图键列表。 现在我想传递S类型的通用HashMap Map map 在generics类中调用静态函数,该类具有映射作为成员变量。 我在下面列出了一个最小的代码示例。 但是,我收到一条错误消息( S和T都是T,但在我的代码的不同范围内,即T#1 = T , T#2 = S ): required: Map found: Map reason: cannot infer type-variable(s) T#1 (argument mismatch; Map cannot be converted to Map) 怎么解决这个问题? 我很惊讶Java不允许从generics类型推断generics类型。 Java中的哪种结构可以用来处理那种更抽象的代码推理? 代码 : public class ExampleClass { Map map; public ExampleClass () { this.map = […]

为什么不允许接口作为注释成员?

考虑以下代码: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Bar { Foo foo() default FooImpl.FooConstant; } 编译错误: 注释值不是允许类型 如果我用FooImpl替换Foo ,则接受代码。 这种行为的原因是什么?

Java:如何检查Field是否为java.util.Collection类型

我有一个实用程序方法,遍历各种类并递归检索字段。 我想检查该字段是否为Collection。 以下是一些示例代码: void myMethod(Class classToCheck) Field[] fields = classToCheck.getDeclaredFields(); for(Field field:fields) { // check if field if a Collection } 在此先感谢您的帮助。