当前位置: 代码迷 >> Java相关 >> 关于用JDK1.5Vector类会出警告的问题
  详细解决方案

关于用JDK1.5Vector类会出警告的问题

热度:245   发布时间:2006-06-05 03:30:00.0
关于用JDK1.5Vector类会出警告的问题

我安装了j2sdk1.5在Vector类的使用时出现了些问题,在网上也没找到故请这里的高手指点.是这样的,我写的程序在j2sdk1.4.2下没有问题,但在j2sdk1.5下编译时出现:注意: TestVector.java 使用了未经检查或不安全的操作。 注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。然后我又执行了javac -Xlint TestVector.java后出现:警告: [path] 错误的路径元素 ".\common\lib\servlet-api.jar":无此文件或目录
TestVector.java:31: 警告: [unchecked] 对作为普通类型 java.util.Vector 的成员的
addElement(E) 的调用未经检查
v.addElement((Integer)new Integer(num));但可以生成.class的字节码文件,不知道如何在addElement方法时检查,请高手指点!

搜索更多相关的解决方案: 警告  

----------------解决方案--------------------------------------------------------

因为1.5版本里面加了泛型的支型,所以凡是不用范型的数据结构都会出警告的
你如果想往 里面加Integer对象的话
你可以这样声明
Vector<Integer> v=new Vector<Integer>();
这样就不会出警告了


----------------解决方案--------------------------------------------------------
的确 用JDK1.42 编译就不会报错 用1.5他就会报个安全警告
主要还是1.5加入了一个泛型 版主可有 泛型 这放面的资料?

后来发过贴后我又仔细的看了SUN的主页 还是被我找到了答案
就象你说的 Vector<String> v=new Vector<String>();
如果不加类型的话 Vector一开始的时候确定不了类型 所以他就会报错

但是怎么把空格或相同的字段给去掉呢?读出来的因该是为一的
读出来的数据是Object的 是转换过类型后再比较 还是在读的时候就比较呢?

[此贴子已经被作者于2006-6-5 23:43:19编辑过]


----------------解决方案--------------------------------------------------------
如果你想存不重复的对象进去,建议用Set,它是不允许重复的,并且也是支持泛型的
----------------解决方案--------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.swing.event.*;
public class TryTextField
{
public static void main(String [] args)
{TryTextFieldFrame frame=new TryTextFieldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class TryTextFieldFrame
{
public TryTextFieldFrame();
{
setTile("TryTextField");
setSize("WIDTH,HEIGHT");
Container contentPane=getContentPane();
DocumentListener listener=new ClockFieldListener();
JPane panel=new JPanel();
hourField=new JTextField("12",3);
panel.add(hourField());
hourField.getDocument().addDocumentListener(listener);
minuteField=new JTextField("00",3);
panel.add(minuteField);
ninuteField.getDocument().addDocumentListener(listener);
contentPane.add(panel,BorderLayout.SOUTH);
clock=new ClockPanel();
contentPane.add(clock,BorderLayout,CENTER);
}
public void setClock()
{
try
{
int hours=Inter.parseInt(hourField.getText().trim());
int minutes=Inter.parseInt(minuteField.getText().trim());
clock.setTime(hours,minutes);
}
catch (NumberFormatException e){}
}
public static final int WIDTH =300;
public static final int HEIGHT =300;
private JTextField hourField;
private JTextField minuteField;
private ClockPanel clock;
private class ClockFieldListener implements DocumentListener
{
public void inserUpdate(DocumentEvent e){setClock();}
public viod removeUpdate(DocumentEvent e){setClock();}
public viod changedUpadate(DocumentEvent e){}
}
}

class ClockPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D 2g =(Graphics2D) g;
Ellipse2D crile=new Ellipse2D.Double(0,0,2*RADIUS,2*RADIUS);
g2.draw(cirle);
double hourAngle=Math.toRadians(90-360*minute/(12*60));
drawHand(g2,hourAngle,HOUR_HAND_LENGTH);
double minuteAngle=Math.toRadians(90-60*minute/60);
drawHand(g2,minuteAngle,MINUTE_HAND_LENGTH);
}
public void drawHand(Graphics2D g2,double angel,double handLength)
{
Point2D end=new Point2D.Double(RADIUS+handLength*Math.cos(angle),RADIUS-handLength*Math.sin(angle));
Point2D center=new Point2D.Double(RADIUS,RADIUS);
g2.draw(new Line2D.Double(center,end));
}
public void setTime(int h,int m)
{
minute=h*60+m;
repaint();
}
private double minutes=0;
private double RADIUS=100;
private double MINURE_HAND_HENGTH=0.8*RADIUS;
private double HOUR_HAND_LENGTH=0.6*RADIUS;
}


求救
错误提示如下
TryTextField.java:62: 不是语句
Graphics2D 2g =Graphics2D g;
^
TryTextField.java:62: 需要 ';'
Graphics2D 2g =Graphics2D g;
2 错误
哪位大哥帮帮忙


----------------解决方案--------------------------------------------------------
好多问题,首先你的名字命错了,JAVA中的变量名是不能以数字开头的
还有,你的方法里面很多变量名写错了,比如minutes写成了minute
这些细节都要注意
另外的错误我就不帮你找了,你可以对照自己起的变量名和用的变量名仔细看看

----------------解决方案--------------------------------------------------------

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Calculator
{public static void main(String[] args)
{CalculatorFrame frame=new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class CalculatorFrame extends JFrame
{public static final int WIDTH=300;
public static final int HEIGHT=300;
public CalculatorFrame()
{setTitle("学生成绩管理系统");
setSize(WIDTH,HEIGHT);
Container contentPane=getContentPane();
CalculatorPanel panel=new CalculatorPanel();
contentPane.add(panel);
}
}

class CalculatorPanel extends JPanel
{private JTextField text1;
private JTextField text2;
private JTextField text3;
private JTextField text4;
private JTextField text5;
private JTextField text6;
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JLabel label1;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JLabel label5;
private JLabel label6;
private JPanel panel;
public CalculatorPanel()
{setLayout(new BorderLayout());
text1=new JTextField();
text2=new JTextField();
text3=new JTextField();
text4=new JTextField();
text5=new JTextField();
text6=new JTextField();
button1=new JButton("存储");
button1=new JButton("删除");
button1=new JButton("查询");
button1=new JButton("排序");
label1=new JLabel("学号:");
label2=new JLabel("年龄:");
label3=new JLabel("名字:");
label4=new JLabel("数学成绩:");
label5=new JLabel("英语成绩:");
label6=new JLabel("数据结构成绩:");
panel=new JPanel(new GridLayout(8,6));
panel.add(label1);
panel.add(text1);
panel.add(label2);
panel.add(text2);
panel.add(label3);
panel.add(text3);
panel.add(label4);
panel.add(text4);
panel.add(label5);
panel.add(text5);
panel.add(label6);
panel.add(text6);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
add(panel,BorderLayout.CENTER);
}

}
---------- java ----------
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1019)
at java.awt.Container.add(Container.java:351)
at CalculatorPanel.<init>(Calculator.java:76)
at CalculatorFrame.<init>(Calculator.java:21)
at Calculator.main(Calculator.java:8)

输出完成 (耗时: 1 秒) - 正常终止


----------------解决方案--------------------------------------------------------