java - 类型安全: Unchecked cast from Integer to T

标签 java casting warnings

如何修复从 Integer 到 T 的未经检查的强制转换?我在这一行收到此警告:

undoStackIndexes.push((T)index);

代码:

SimpleStack<T> undoStackIndexes = new SimpleStack<T>();
SimpleStack<T> undoStackDatas = new SimpleStack<T>();
public void add( int idx, T x ){
        Node<T> p = getNode( idx, 0, size( ) );
        Node<T> newNode = new Node<T>( x, p.prev, p );
        newNode.prev.next = newNode;
        p.prev = newNode;         
        theSize++;
        modCount++;

        undoStackDatas.push(newNode.data);
        Integer index = new Integer(idx);
        undoStackIndexes.push((T)index);
    }

最佳答案

如果您知道要在 undoStackIndexes 堆栈中存储 Integer 索引,则不应将其设为通用的 T 类型:

SimpleStack<Integer> undoStackIndexes = new SimpleStack<Integer>();

关于java - 类型安全: Unchecked cast from Integer to T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32927687/

相关文章:

java - 在osgi中使用jackson提供程序和cxf(未找到消息正文编写器)

c - 解决复合分配中的转换警告

java - 使用 JNI 为 Raspberry Pi 2 编译 C(错误的 ELF 类)

java - 为什么我的 javafx imageview 扭曲了我的 gif 的播放方式

c++ - 是否存在将实际 Base 向下转换为 Derived 的情况?

java - 将字节转换为枚举

javascript - 简写(类型不同)真/假比较是字符串的好习惯吗?

c - 是否有 gcc 命令行选项来消除警告 : passing argument n discards qualifiers from type

windows - 从 Java Applet 获取 Windows Service Pack 版本?