Jcat
宠辱不惊,闲看庭前花开花落~~
posts - 173,comments - 67,trackbacks - 0
Experience
To know how dose List.remove(Object) work, I do many test sample. But I still feel not very realizing. Finally, I took a look at souce code, and then I knew everything!
public boolean remove(Object o) {
    
if (o == null{
            
for (int index = 0; index < size; index++)
        
if (elementData[index] == null{
            fastRemove(index);
            
return true;
        }

    }
 else {
        
for (int index = 0; index < size; index++)
        
if (o.equals(elementData[index])) {
            fastRemove(index);
            
return true;
        }

        }

    
return false;
    }
1. List store very object's reference but object's own.
2. remove(Object) will remove the first reference in List which refer to the object
3. If you want to change an object to a new index: back up it--> remove it--> re-add it

Experience
I create a class to handle something annotated by Annotations. But it doesn't work. I found out it is returned false by Class.getMethod().isAnnotationPresent(Todo.class). Finally, I got the reason by reading source code.
public enum RetentionPolicy {
    
/**
     * Annotations are to be discarded by the compiler.
     
*/
    SOURCE,

    
/**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.
     
*/
    CLASS,

    
/**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     *
     * 
@see java.lang.reflect.AnnotatedElement
     
*/
    RUNTIME
}

posted on 2006-08-03 18:43 Jcat 阅读(335) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: