S-JIS[2007-06-11/2017-09-23] �ύX����
Eclipse3.1�ȍ~�ł悭�x�����o��悤�ɂȂ����B
javac�R�}���h�Œ��ڃR���p�C������ƃf�t�H���g�ł͂��̎�̌x���͏o�Ȃ����Ajavac�̃I�v�V������-Xlint��t���ăR���p�C�������
�����̌x�����o��悤�ɂȂ�B
javac�̃I�v�V������-Xlint�ɂ���Čx����}�~�ł���B�iJDK1.5�ȍ~�j
�S�Ă̌x�����o����F
> javac -Xlint Test.java > javac -Xlint:all Test.java
�S���x�����o���Ȃ���F
> javac Test.java > javac -Xlint:none Test.java
�V���A���C�Y�̌x�������o����F
> javac -Xlint:serial Test.java
�V���A���C�Y�̌x����}�~�����F
> javac -Xlint:-serial Test.java
�V���A���C�Y�̌x�������}�~���A���̌x���͑S�ďo����F
> javac -Xlint:all,-serial Test.java
JDK1.5���瓱�����ꂽ�A�m�e�[�V�����ɁA@SuppressWarnings�Ƃ������̂�����B
�����ɗ}�~�������x����������������w�肷�邱�Ƃɂ���āA�R���p�C���[�̊Y���̌x�����o���Ȃ��悤�ɂ��邱�Ƃ��o����B
@SuppressWarnings("�x����")
@SuppressWarnings({ "�x����1", "�x����2", �c })
�x�����͒P�Ȃ镶����Ȃ̂ŁA�萔�i�ϐ��j�Ŏw�肷�邱�Ƃ��o����B[2010-01-09]
static final String �萔�� = "�x����"; @SuppressWarnings(�萔��)
�����[�J���ϐ���static final�̕t���Ă��Ȃ��t�B�[���h�ł̓_��
@SuppressWarnings�ɂǂ������l���w��ł���̂��ɂ��ẮA�R���p�C���[�̎����i�R���p�C���[�̎�ށj�ɂ���ĈقȂ��B
�iJava����d�l��3��9.6.1.5�͂ɁA�R���p�C���[�ˑ������R���p�C���[�x���_�[�Ԃł̋��͂𐄏����Ă���Ə����Ă���j
��Eclipse�̌x��
Sun��javac�̏ꍇ�A
�ujavac -X�v��javac�̃I�v�V�����̈ꗗ�������邪�A-Xlint�̍��ŏo�Ă�����̂����Ԃ��w��ł���B
�R���p�C���Ōx���ΏۂɈ����|����ƁA�u�`:�x��:[unchecked]
�`�v�̂悤�ɁA�x���̕����\�������B[2008-05-23]
���ꂪ-Xlint�Ŏw�肷�ׂ�������ł���A@SuppressWarnings�Ɏw�肷�镶����ł����Ǝv���B
��Sun��javac�̔�W���I�v�V�����i-Xlint�j
| �l | JDK | ���b�Z�[�W | �x���̊T�v | �� | �X�V�� |
|---|---|---|---|---|---|
| all | 1.5 | �@ | �S�Ă̌x����}������B |
@SuppressWarnings("all")
|
2008-05-23 |
| cast | 1.6 | {1} �ւ̏璷�ȃL���X�g�ł� | �s�v�ȃL���X�g���s���Ă���B |
@SuppressWarnings("cast")
String s = (String)"abc";
|
2008-08-24 |
| dep-ann | 1.5 | ��������Ȃ����ڂ� @Deprecated �Œ��߂��t�����Ă��܂���B | Javadoc��@deprecated�^�O���t�����Ă��邪�A@Deprecated�A�m�e�[�V�������t�����Ă��Ȃ��B ������JDK1.5�ȍ~�ł̓A�m�e�[�V�������g�� �i@SuppressWarnings��Javadoc�^�O�̑O�ɕt����Όx���͏����邯��ǂ��A�f����@Deprecated�A�m�e�[�V������t����ׂ��ł��傤�j |
@SuppressWarnings("dep-ann")
/** @deprecated */
public void zzz(){ }
/** @deprecated */
@Deprecated
public void zzz(){ }
|
2008-10-25 |
| deprecation | 1.5 | {1} �͐�������܂��� | ���ideprecated�j�ɂȂ��Ă���N���X�E���\�b�h���g�p���Ă���B |
@SuppressWarnings("deprecation")
Date d = new Date("2008/05/23");
|
2008-05-23 |
| divzero | 1.6 | �[���ŏ��Z | 0�ŏ��Z���Ă���B |
@SuppressWarnings("divzero")
int n = 1 / 0;
|
2008-05-23 |
| empty | 1.6 | if �ȍ~����̕��ł� | if���ɂ����āAelse���������A�����������ꍇ�̏������̏ꍇ�i�܂�uif(����);�v�j�̌x���B��u���b�N�̏ꍇ�i�u if(����){}�v�j��uif(����);else;�v���͌x���ɂȂ�Ȃ��Bfor�Ewhile�Edo���̃��[�v���ΏۊO�B |
@SuppressWarnings("empty")
void if1() {
if(true);
}
|
2008-09-23 |
| fallthrough | 1.5 | case �� fall-through ����\��������܂� | switch�ɂ����āA���炩�̏������L�q�������break�������A����case�i��default�j�ɏ������ڂ�ꍇ�B |
@SuppressWarnings("fallthrough")
void test(int n) {
switch(n){
case 1:
System.out.println("abc");
default:
break;
}
}
|
2008-05-23 |
| finally | 1.5 | finally �߂�����Ɋ����ł��܂��� | finally�߂̒���return�܂���throw���Ă���B �i���ʂ�try�y��catch�߂̒�����return/throw������̂ł���Afinally�ł������g����finally�ŕԂ����l���L���ɂȂ��̂ŁAtry/catch�ŕԂ����l�����ݏ�����Ă��܂��j |
@SuppressWarnings("finally")
int test() {
try {
} finally {
return 1;
}
}
|
2007-06-12 |
| overrides | 1.6 | {1}��{2}�� {3}��{4}���㏑�����܂��B; �I�[�o�[���C�h���Ă��郁�\�b�h�ɂ� {5} ������܂���B | ��`�������\�b�h�i{1}�N���X��{2}�j���A�V�O�j�`���[�̈قȂ�e�N���X{3}�̃��\�b�h{4}�̃I�[�o�[���C�h�ɂȂ��Ă��܂��A�Ƃ����x���B |
class Super {
void method(String[] s){}
}
class Sub extends Super {
@SuppressWarnings("overrides")
void method(String... s){}
}
|
2008-08-24 |
| path | 1.5 | �@ | �R���p�C���I�v�V������classpath��sourcepath�Ńp�X�����݂��Ȃ��ꍇ�̌x���炵���B | �@ | 2008-05-23 |
| serial | 1.5 | ���\�ȃN���X {1} �ɂ́AserialVersionUID ����`����Ă��܂��� | Serializable�C���^�[�t�F�[�X�����������ꍇ��serialVersionUID�Ƃ����萔���`���ׂ��Ȃ̂ɁA��`����Ă��Ȃ��B | @SuppressWarnings("serial")
class Test implements Serializable {
}
|
2007-06-11 |
| unchecked | 1.5 | �@ | ���`�F�b�N�ϊ��iunchecked conversion�j�ɑ���x���B | �@ | 2008-08-30 |
| raw �^ {1} �̃����o�Ƃ��Ă� {2} �ւ̖������Ăяo���ł� | ���̌^�i�W�F�l���N�X�j�Ō^�������w�肹���Ƀ��\�b�h���g���Ă���B ��raw�^ |
@SuppressWarnings("unchecked")
void test(List list) {
list.add("abc");
}
|
2008-05-23 | ||
| �������L���X�g�ł� | �^�������g�����L���X�g�́A���s���ɂ͌^�`�F�b�N����Ȃ��B �܂�E�̗Ⴞ�ƁA�u Class<Date> c = strClass();�v�ł̓R���p�C���G���[�ɂ��x���ɂ��Ȃ�Ȃ������s���ʂ�i���ۂɕԂ��Ă��Ă���̂�Class<String>�����A�`�F�b�N����Ȃ��j�B�������u Data d = c.newInstance();�v�ŃL���X�g�̗�O����������B���R���N�V�����̓��I�^�ۏ� |
@SuppressWarnings("unchecked")
static <T> Class<T> strClass() {
return (Class<T>)"".getClass();
}
|
2008-08-21 |
@SuppressWarnings��t�����܂܌x���̌������������Ă��A@SuppressWarnings�͉����������Ȃ��B
�i�܂�x�����o�Ȃ��Ȃ����̂�@SuppressWarnings�͕s�v�ɂȂ����̂����A�����m��p�������i����ɑ��Čx�����o���Ă��ꂽ��͂��Ȃ�(���)�j�j
Eclipse�ł͕s�v��@SuppressWarnings�͌x���ɂȂ邱�Ƃ����邯�ǁB
@java.lang.SafeVarargs�́AJDK1.7�œ������ꂽ�A�m�e�[�V�����B[2014-08-09]
���S�łȂ��ϒ������ivar args�j�ɑ���x����}�~����B
�Ⴆ�Έȉ��̂悤�ȃR�[�f�B���O���s���ƁA�x�����o��B
public void varArgsMethod(List<String>... args) { // Type safety: Potential heap pollution via varargs parameter args
System.out.println(args);
}
�g�W�F�l���N�X�t���̃N���X�̉ϒ������h�̏ꍇ�A���̂Ƃ��Ắg�W�F�l���N�X�t���N���X�̔z��h�ɂȂ邪�A�z��������Ȃ̂ŁA���S�łȂ����삪�i��낤�Ǝv���j�o���Ă��܂��B
�̂ŁA�����������x�����o�Ă���炵���B
���S�łȂ�����Ƃ����̂́A�Ⴆ�Έȉ��̂悤�ȃR�[�h�B
public void varArgsMethod(List<String>... args) {
Object[] objs = args;
objs[0] = Arrays.asList(123); // List<Integer>
List<String> list = args[0];
String s = list.get(0); // ClassCastException
}
�z��������Ȃ̂ŁAargs��Object�z��̕ϐ��ɑ���ł��Ă��܂��B
����ƁA�{���̌^�ƈقȂ�^�̒l�����ł��Ă��܂��B
����ƁA������g�����Ƃ����ӏ���ClassCastException���������Ă��܂��B
�܂��A�ϒ������̕ϐ��̒��g������������R�[�f�B���O�Ȃ�āA�܂����Ȃ����낤����(���)
����������ŁA��L�̂悤�Ȍx�����o�Ă���ꍇ�A@SuppressWarnings("unchecked")�܂���@SafeVarargs�Ōx����}�~���邱�Ƃ��o����B
@SafeVarargs
// @SuppressWarnings("unchecked")
public final void varArgsMethod(List<String>... args) {
System.out.println(args);
}
@SafeVarargs��t����ꍇ�A���̃��\�b�h��final��������static�ł���K�v������B
�i�I�[�o�[���C�h���ꂽ��܂ʼne�����y�ڂ��Ȃ����炾�낤���H�j
���̏��������Ă��Ȃ��ꍇ�A�u@SafeVarargs annotation cannot be applied to non-final instance
method varArgsMethod�v�Ƃ����G���[�ɂȂ�B
�i�I�[�o�[���C�h�̉e���Ȃ�private���\�b�h�͖��Ȃ��͂������Aprivate���\�b�h�ł�final���t���Ă��Ȃ��ƃG���[�ɂȂ�j
��Java9�ŁAprivate���\�b�h�ɂ�@SafeVarargs��t������悤�ɂȂ����B[2017-09-23]
Eclipse�̏ꍇ�A��L�̌x���ɑ����N�C�b�N�t�B�b�N�X��@SafeVarargs��@SuppressWarnings��t���邱�Ƃ��o���邪�Afinal��������static���\�b�h�łȂ��ꍇ�́A�⊮����@SafeVarargs�͏o�Ă��Ȃ��B
@SuppressWarnings("unchecked")��@SafeVarargs�̈Ⴂ�́A@SafeVarargs���Ƃ��̃��\�b�h�̌Ăяo�����̌x���܂ŗ}�~����邱�ƁB
��L�̌x�����o�Ă��郁�\�b�h���Ăяo���R�[�f�B���O������ƁA�Ăяo�����ł��ȉ��̂悤�Ȍx�����o��B
public void caller() {
List<String> list = new ArrayList<>();
varArgsMethod(list); // Type safety: A generic array of List<String> is created for a varargs parameter
}
�Ăяo�����\�b�h��@SafeVarargs���t���Ă���ƁA���̌x�����}�~�����B
�i�Ăяo�����\�b�h��@SuppressWarnings��t���Ă��邾�����ƁA������̌x���͗}�~����Ȃ��j
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@