gpt4 book ai didi

java - 我正在用Java编写代码,但是在编译时出现了: “.java uses or overrides a deprecated API.” comes up错误

转载 作者:行者123 更新时间:2023-12-02 10:56:23 25 4
gpt4 key购买 nike

我正在编写的代码的提示是:
这项作业涉及编写一个模拟 super 英雄的程序。 super 英雄有名字,在履行英雄职责时穿特殊的衣服,可能会披着斗篷,并有生日。 super 英雄也可以在被召唤时行使其特殊能力。
实现一个名为SuperHero的类,该类为上述描述建模。使用Name类代表name属性,并使用Date类代表出生日期属性。您可以使用讲座中的Date类或定义自己的类。如果 super 英雄穿着他们的特殊西装,则西装属性应指明这一点。同样,如果 super 英雄穿着斗篷,则斗篷属性应指明这一点。字符串类型可用于这两个属性。还应该有一个指示 super 英雄是否正在调用其特殊能力的属性,以及一种设置和取消特殊能力属性的方法。提供适当的类构造函数,getter方法,setter方法以及您认为对 super 英雄建模所需的任何其他方法。
编写一个main方法,该方法创建一个SuperHero对象数组,并显示它们的属性,并显示是否正在调用其超能力。
这是我的代码:

import java.util.Date;
import java.util.Scanner;

class Name
{
String name;

public String Name() //Name(String name)
{
this.name=name;
return this.name;
}

public String getName()
{

return name;
}
}

public class SuperHero
{
String cape,suit,specialPowers,name,dob;

public static void main(String args[])

{

int insuper=0;

Scanner sc = new Scanner(System.in);

System.out.println("How many superheros would you like");

insuper = sc.nextInt();

SuperHero[] sh=new SuperHero[insuper];

for(int i=0;i<insuper;i++)

{

System.out.println("Specify features to the Super Hero "+(i+1)+" That you want for them" );

System.out.println("Name : ");

Name n=new Name(sc.next());

sh[i].name=n.getName();

System.out.println("Date of Birth");

Date dd = new Date(sc.next());

sh[i].dob=dd.toString();

System.out.println("will he have a cape: (y/n)");

String ch=sc.next();

if (ch.charAt(0) == 'y' || ch.charAt(0) == 'Y')

sh[i].cape = "yes";

else

sh[i].cape = "no";


System.out.println("Will he have a suit: (y/n)");

ch=sc.next();

if(ch.charAt(0) == 'y' || ch.charAt(0) == 'Y')

sh[i].suit = "yes";

else

sh[i].suit = "no";

System.out.println("Will he have super powers (y/n)");

ch=sc.next();

if(ch.charAt(0) == 'y' || ch.charAt(0) == 'Y')
{
sh[i].seSuperPowers();
}

else
sh[i].unSetSuperPowers();
}

for(int i=0;i<insuper;i++)

{

System.out.println("Super man "+(i+1)+" consist of these features");

System.out.println("Name : "+sh[i].name);

System.out.println("Date of birth : "+sh[i].dob);

System.out.println("Suit : "+sh[i].cape);

System.out.println("Powers : "+sh[i].getSuperPowers());

}

}


void seSuperPowers()
{
specialPowers = "yes";
}


void unSetSuperPowers()
{
specialPowers = "no";
}


String getSuperPowers()
{
return specialPowers;
}

}
每当我编译时,都会出现此错误:
    Note: SuperHero.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
谁能帮我,重写或编辑代码,将不胜感激?

最佳答案

就像其他人所说的那样,这只是警告而不是错误,如果那是唯一的事情,它应该可以编译。当运行带有-Xlint标志的编译器时,它应该表明java.util.Data类的Date(String)构造函数已被淘汰(这意味着它不再应使用)
但是当您尝试创建时也会出现错误

Name n=new Name(sc.next());
由于您从未定义过名称(string)格式的构造函数。如果该分配迫使您对名称字段使用包装器类,那么我将不是在SuperHero类中创建字符串实例变量,而是创建上面定义的Name类的实例,否则使用它似乎是多余的。当然,要做到这一点,您将需要为Name类创建一个新的构造函数,该构造函数将字符串作为参数。对于每个SuperHero的Date类和出生日期,我将做同样的事情(减去创建新的构造函数)。

关于java - 我正在用Java编写代码,但是在编译时出现了: “.java uses or overrides a deprecated API.” comes up错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62781902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com