簡體   English   中英

錯誤:<identifier> 制作 generics 數組時預期</identifier>

[英]error: <identifier> expected when making array of generics

我正在嘗試通過類型轉換創建一個 generics 數組,但是我嘗試的所有操作都導致error: <identifier> expected 任務是創建一個基於數組的 Deque。 我試過了:

  • @suppresswarning("未選中")
  • 隨機重寫代碼

這是代碼片段

public class dequeCyclic<E> implements Deque<E> {
private int first;
private int last; 
private E[] deque;

public dequeCyclic(int size){
    @SuppressWarning("unchecked")
    deque =(E[]) new Object[size];
    first = -1; 
    last = -1; 
}   

任何幫助將不勝感激。

您不能將@SuppressWarning放在語句上。 它們只允許在聲明中使用,因此您有三個選項,或者注釋 class:

@SuppressWarning("unchecked")
public class dequeCyclic<E> implements Deque<E> {

或構造函數:

@SuppressWarning("unchecked")
public dequeCyclic(int size) {
    deque =(E[]) new Object[size];
    first = -1; 
    last = -1; 
}

或者創建一個局部臨時變量:

public dequeCyclic(int size) {
    @SuppressWarning("unchecked")
    E[] temp =(E[]) new Object[size];
    deque = temp;
    first = -1; 
    last = -1; 
}

應該首選帶有臨時變量的最后一個,因為第一個和第二個變體會抑制其中的所有未經檢查的警告。 這通常弊大於利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM