我最近开始阅读注释。我在这里弃用了armStrong()方法,我需要抑制弃用警告,但无论我放在哪里,它都会显示“不必要的@SuppressWarnings(“弃用”)”。
有没有人能告诉我应该把它放在哪里,这样方法就不推荐了,警告就不会再出现了?
import java.io.*;
import java.lang.annotation.*;
import java.lang.reflect.Method;
@Retention(RetentionPolicy.RUNTIME)
@interface number
{
String arm();
}
public class Ch10LU2Ex4
{
@Deprecated
@number(arm = "Armstrong number")
public static void armStrong(int n)
{
int temp, x, sum = 0;
temp = n;
while(temp!=0)
{
x = temp%10;
sum = sum+x*x*x;
temp = temp/10;
}
if(sum==n)
{
System.out.println("It is an armstrong number");
}
else
{
System.out.println("It is not an armstrong number");
}
}
public static void main(String[] args)
{
try
{
Ch10LU2Ex4 obj = new Ch10LU2Ex4();
obj.invokeDeprecatedMethod();
Method method = obj.getClass().getMethod("armStrong", Integer.TYPE);
Annotation[] annos = method.getAnnotations();
for(int i = 0; i<annos.length; i++)
{
System.out.println(annos[i]);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
@SuppressWarnings("deprecation")
public void invokeDeprecatedMethod()
{
try
{
System.out.println("Enter a number between 100 and 999:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
Ch10LU2Ex4.armStrong(x);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
这是一个特性,不是bug。从类本身中调用类的已弃用方法时,不需要使用SuppressWarnings,因为此类调用首先不会生成弃用警告。从其他类调用已弃用的方法将需要SuppressWarnings注释。
使用来自另一个方法的已弃用方法会导致警告。
典型用法如下所示:
@SuppressWarnings("deprecation")
public void invokeDeprecatedMethod() {
instanceofotherclass.armStrong(1);
}
在同一个类中,假设程序员知道自己在做什么。
我最近遇到了java注释。谷歌搜索是什么使Java中的可变函数变得不安全,这让我相当困惑(堆中毒?删除类型?),所以我想知道一些事情: > 在意义上,是什么使一个不同的Java函数不安全(最好以深入示例的形式解释)? 是否有一些标准必须遵守,以确保他的功能确实是安全的?如果没有,有什么最佳做法来确保它?
问题内容: 我有一个奇怪的问题,如果可以解决,那就太好了。出于调试目的(以及其他一些目的),我在标准输出上编写了控制台Java应用程序的日志。在标准输出上写一些内容,在标准错误上打印一些错误,例如错误。问题是这两个没有完全同步,因此打印线的顺序并不总是正确的。我猜这是因为打印了很多东西,并且碰巧一个输出的缓冲区已满,所以其他输出在第一个输出刷新其缓冲区之前就已打印出来。 例如,我想这样写: 有时打
问题内容: 我想澄清一下,我正在寻找一种使用Streams计算标准偏差的方法(我目前有一种工作方法可以计算并返回SD,但不使用Streams)。 我正在使用的数据集紧密匹配,如Link中所示。如该链接所示,能够对我的数据进行分组并获得平均值,但无法弄清楚如何获取SD。 码 我还检查了DoubleSummaryStatistics上的链接,但似乎对SD没有帮助。 问题答案: 您可以将自定义收集器用于
问题内容: 我最近遇到了Java 批注。搜寻是什么使Java中的可变参数功能不安全,这让我感到很困惑(堆中毒?擦除了类型?),所以我想知道一些事情: 是什么使得可变参数Java函数在某种意义上不安全(最好以深入示例的形式进行解释)? 为什么该注释留给程序员自己决定?这不是编译器应该能够检查的东西吗? 为了确保其功能确实是安全的,是否必须遵循一些标准?如果没有,有什么最佳实践来确保呢? 问题答案:
我想知道是否有可能将一些自定义类型的新约束验证器注册到Bean验证规范定义的注释中。例如,让我们想象一下,我有一个类,它累加了几个int值 我想注册一个自定义约束验证器来支持这种类型的@正向注释(而不是创建自定义注释)。 这样以后我就可以使用这个: