使用java中的流查找三角形的面积和周长。
在编译以下程序时显示
注意:triangle.java使用或覆盖已弃用的API。 使用-Xlint重新编译:弃用以获取详细信息。
请查看此计划中的错误!
import java.io.*;
class triangle
{
double s,h,area,perimeter;
void get()throws IOException
{
System.out.println("Enter value of side of an equilateral triangle");
DataInputStream dis=new DataInputStream(System.in);
s=Double.parseDouble(dis.readLine());
System.out.println("Enter height");
h=Double.parseDouble(dis.readLine());
}
void area()
{
area=0.5*s*h;
}
void perimeter()
{
perimeter=3*s;
}
void display()
{
System.out.println("Area="+area);
System.out.println("Perimeter="+perimeter);
}
public static void main(String args[])throws IOException
{
triangle t=new triangle();
t.get();
t.area();
t.perimeter();
t.display();
}
}
答案 0 :(得分:2)
当您汇总编译器提供给您的所有信息时,您可以清楚地知道您的代码使用或覆盖了已弃用的API。"
正如您在最近的评论中所说,当您按照建议执行操作并在命令行中添加其他选项时,它会告诉您问题的来源。
在这种情况下,DataInputStream#readLine()。
当然,您可以取消警告但链接说明:
"此方法无法将字节正确转换为字符。从JDK开始 1.1,读取文本行的首选方法是通过BufferedReader.readLine()方法。使用的程序 DataInputStream类读取行可以转换为使用 BufferedReader类......"
这可能是比忽略弃用和潜在错误更好的建议。
答案 1 :(得分:-1)
您正在使用带有DataInputStream的readline(),现在已在Java中弃用。没问题。来自Java社区的警告只是这种方法可能无法正常工作。您可以使用
取消这些警告@SuppressWarnings( "deprecation" )在get()方法之前
。