자바 - 9.1 유형의 안전 한 용 기 를 처음부터 인식 합 니 다.
3778 단어 자바
유형 안전 에 대해 말하자면 범 형 이 라 고 할 수 밖 에 없다. 물론 우 리 는 여기 서 범 형 을 어떻게 사용 하 는 지 간단하게 소개 할 뿐 뒤의 장 은 계속 전 개 될 것 이다.
1. 어떻게 해야만 유형 안전 이 라 고 할 수 있 습 니까?
하나의 반 례:
package com.ray.ch09;
import java.util.ArrayList;
public class Test {
private ArrayList fruitList = new ArrayList();
public void addOrange(Orange orange) {
fruitList.add(orange);
}
public void addApply(Apple apple) {
fruitList.add(apple);
}
public static void main(String[] args) {
Test test = new Test();
for (int i = 0; i < 5; i++) {
test.addApply(new Apple());
}
for (int i = 0; i < 10; i++) {
test.addOrange(new Orange());
}
}
}
class Apple {
}
class Orange {
}
위의 코드 를 보면 fruitList 에 Orange 가 들 어 있 고 Apply 가 들 어 있 는 것 을 볼 수 있 습 니 다. 그러면 우리 가 get 이 나 와 야 할 때 우 리 는 Object 만 나 왔 습 니 다. 이것 은 문제 가 발생 할 것 입 니 다. Apply 로 전환 하 느 냐 Orange 로 전환 하 느 냐 에 달 했 습 니 다. 만약 에 잘못 전환 하면 운 이 이상 합 니 다.
따라서 코드 프로 그래 밍 형식 을 안전 하 게 하려 면 범 형 을 활용 해 야 하고 모든 List 는 넣 은 대상 을 한정 해 야 한다.
package com.ray.ch09;
import java.util.ArrayList;
public class Test {
private ArrayList<Apple> applyList = new ArrayList<Apple>();
private ArrayList<Orange> orangeList = new ArrayList<Orange>();
public void addOrange(Orange orange) {
orangeList.add(orange);
}
public void addApply(Apple apple) {
applyList.add(apple);
}
public static void main(String[] args) {
Test test = new Test();
for (int i = 0; i < 5; i++) {
test.addApply(new Apple());
}
for (int i = 0; i < 10; i++) {
test.addOrange(new Orange());
}
}
}
class Apple {
}
class Orange {
}
새로운 코드 에 있 는 모든 list 는 특정한 대상 만 배치 할 수 있 기 때문에 유형 안전 에 문제 가 발생 하지 않 습 니 다.
위 에서 사용 하 는 것 은 범 형 으로 유형 을 한정 했다.이렇게 하면 운행 할 때 전환 이상 이 나타 나 지 않 을 것 이다.
2. 위로 전환 할 수 있 는 대상 에 대해 같은 종 류 를 계승 하거나 같은 인 터 페 이 스 를 실현 하 는 경우 에 도 같은 범 형 list 에 넣 을 수 있다.
package com.ray.ch09;
import java.util.ArrayList;
public class Test {
private ArrayList<Apple> applyList = new ArrayList<Apple>();
public void addApple(Apple apple) {
applyList.add(apple);
}
public static void main(String[] args) {
Test test = new Test();
for (int i = 0; i < 5; i++) {
test.addApple(new Gala());
test.addApple(new Fuji());
}
}
}
class Apple {
}
class Gala extends Apple {
}
class Fuji extends Apple {
}
package com.ray.ch09;
import java.util.ArrayList;
public class Test {
private ArrayList<CanSwim> swimList = new ArrayList<CanSwim>();
public void add(CanSwim canSwim) {
swimList.add(canSwim);
}
public static void main(String[] args) {
Test test = new Test();
for (int i = 0; i < 5; i++) {
test.add(new Person());
test.add(new Fish());
}
}
}
interface CanSwim {
}
class Person implements CanSwim {
}
class Fish implements CanSwim {
}
결론: 이 장 에 서 는 어떻게 해 야 유형 안전 인지, 그리고 유형 안전 에 대한 주의 점 을 토론 했다.
이 장 은 여기까지 입 니 다. 감사합니다.
-----------------------------------
목차
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.