Tag: 类型

从父类返回子类

我有一个构建器类,它从大多数方法返回以允许菊花链。 为了使这个工作与子类,我希望父方法返回子的实例,以便子方法可用于链到最后。 public class BaseBuilder<T extends BaseBuilder> { public T buildSomething() { doSomeWork(); /* OPTION #1: */ return this; // “Type mismatch: cannot convert from BaseBuilder to T” /* OPTION #2: */ return T.this; // “Type mismatch: cannot convert from BaseBuilder to T” /* OPTION #3: */ return (T) this; // “Type safety: Unchecked cast […]

Java读取unsigned int,存储并将其写回

我需要从quicktime文件中读取unsigned int,然后将其写回另一个quicktime文件。 目前我将unsigned int读入Long,但在写回来的时候,我从来没有设法用4个字节作为unsigned int写回确切的数字。 长期具有我需要回写的正确值。 (例如3289763894或370500)我甚至无法读取写入小于Integer.MAX_VALUE的数字(例如2997)。 我使用以下方法将值写回 public void writeUInt32(long uint32,DataOutputStream stream) throws IOException { writeUInt16((int) (uint32 & 0xffff0000) >> 16,stream); writeUInt16((int) uint32 & 0x0000ffff,stream); } public void writeUInt16(int uint16,DataOutputStream stream) throws IOException { writeUInt8(uint16 >> 8, stream); writeUInt8(uint16, stream); } public void writeUInt8(int uint8,DataOutputStream stream) throws IOException { stream.write(uint8 & 0xFF); } 任何帮助,将不胜感激。

比较generics类型Java

我在比较generics类型时遇到问题。 在C#i中,我总是做类似的事情: class Element where T : IComparable 。 我的问题是它如何用java编写?

为什么java中的“超类型令牌”模式需要匿名类

在Neal Gafter的“超类型令牌”模式( http://gafter.blogspot.com/2006/12/super-type-tokens.html )中,使用匿名对象传递参数化类型: class ReferenceType{} /* anonymous subclass of “ReferenceType” */ ReferenceType<List> referenceType = new ReferenceType<List>(){ }; Type superClass = b.getClass().getGenericSuperclass(); System.out.println(“super type : ” + superClass); Type genericType = ((ParameterizedType)superClass).getActualTypeArguments()[0]; System.out.println(“actual parameterized type : ” + genericType); 然后结果是: super type : com.superluli.test.ReferenceType<java.util.List> actual parameterized type : java.util.List 我的问题是,匿名对象“referenceType”的作用是什么让它起作用? 如果我定义一个“ReferenceType”的显式子类并使用它而不是匿名样式,它就不会如预期的那样。 class ReferenceType{} class ReferenceTypeSub […]

在真实应用程序中使用短和字节原始类型的人?

我从2004年开始使用Java编程,主要是企业和Web应用程序。 但是除了玩具程序之外,我从未使用过short或byte ,只是为了知道这些类型是如何工作的。 即使在100次的for循环中,我们通常也会使用int 。 而且我不记得我是否遇到过任何使用byte或short的代码,而不是一些公共API和框架。 是的我知道,在内存节省实际上很重要的情况下,您可以使用短或字节来节省大型arrays中的内存。 有人关心练习吗? 或者它只是书中的东西。 将post 使用字节数组进行网络编程和套接字通信是一种非常常见的用法。 感谢Darren指出这一点。 现在怎么样短 ? 瑞安,举了一个很好的例子。 谢谢,瑞恩。

Javagenerics – 覆盖抽象方法并具有子类的返回类型

我正在尝试创建一个设置,其中一组子类覆盖超类。 这个超类包含一个抽象方法 – 理想情况下,它的返回类型是调用此方法的对象的返回类型,因此它的行为有效地如下: public abstract class SuperClass{ public abstract SuperClass getSelf(); } public class SubClass extends SuperClass{ @Override public SubClass getSelf(){ return this; } } 我不确定这样的事情是否可能,因为我认为返回类型总是必须相同才能使覆盖工作 – 但是我一直在想答案,如果存在的话,就在这条线的某个地方… public abstract class SuperClass{ public abstract getSelf(); } public class SubClass extends SuperClass{ @Override public SubClass getSelf(){ return this; } } 谢谢你的帮助。 编辑:添加扩展SuperClass到SubClass,呃

将tinyint映射为布尔hibernate

我在MySQL表中有一个BOOLEAN类型(TINYINT(1)),我试图在实体中映射布尔字段,但这会产生exception: org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: boolean 我将我的实体中的字段更改为byte并进行相应的更改,使其作为布尔值,我得到: org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: tinyint 我尝试在字段上使用@Type注释: @Type(type = “org.hibernate.type.NumericBooleanType”) 但我得到: org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: integer

Java 6 – 将java.sql.Types映射到Java类型

我正在寻找一个表的链接,其中包含SQL类型(java.sql.Types)与Java类型之间的映射。 你知道我在哪里找到一个吗?

Erasure类型的丑陋头脑,如何规避?

所以我有这个界面 public interface EventHandler { public void handleEvent(E event); } 我想为它处理处理事件的类,如下所示: public class WorkingHandler implements EventHandler { public void handleEvent(MouseEvent event) { //handle event } } 以上示例工作正常。 但是编译器不会让我多次实现EventHandler,因为类型擦除非常令人沮丧。 public class NotWorkingHandler implements EventHandler, EventHandler { public void handleEvent(MouseEvent event) { //handle mouse event } public void handleEvent(KeyEvent event) { //handle key event } } 几个问题…… […]

Java多态性混乱

下面的问题来自Kathy Sierra和Bert Bates的Java SCJP5一书。 给定一个声明为的方法: public static List process(List nums) 程序员想要使用这样的方法: // INSERT DECLARATIONS HERE output = process(input); 可以在// INSERT DECLARATIONS这里放置哪一对声明以允许代码编译? (选择所有适用的选项。) 一个。 ArrayList input = null; ArrayList output = null; B. ArrayList input = null; List output = null; C。 ArrayList input = null; List output = null; D. List input = null; ArrayList […]