반응형

DTO(Data Transfer Object)

계층 간 데이터 교환을 위해 사용하는 객체로 데이터 교환만을 위해 사용하므로 로직이 없으며 getter, setter 메소드만 갖습니다. View와 Controller 사이에서 데이터를 주고 받을 때 사용합니다.

 

public class Student {

    private Integer id;
    private String name;
    
    public Student(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }

}

 

 

반응형
반응형

문자열을 비교할 때 많이 사용되는 메소드는 equals()입니다. 문자열 String은 기본타입이 아닌 클래스이므로 == 를 사용하여 비교할 시 두 문자열 클래스의 주소값을 비교하게 되고 같은 문자가 담긴 문자열이라도 false를 반환합니다.

 

그래서 사용하는 문자열 비교 메소드가 equals() 메소드인데 이 메소드의 치명적인 단점은 equals() 를 부르는 객체가 null일 경우 개발자 모두가 싫어하는 NullPointerException 발생시킨다는 것입니다.

 

 

이 때 StringUtills 클래스의 equals() 메소드를 사용하면 예외 발생 없이 null이 반환되기 때문에 NullPointerException에서 안전합니다.

 

StringUtills의 패키지 경로 : org.apache.commons.lang3.StringUtils;

반응형

'Java > Java 기초' 카테고리의 다른 글

[Java] Optional  (0) 2021.07.22
[Java] .length, .length(), .size()  (0) 2021.07.08
[Java] 증감 연산자 기초  (0) 2021.07.06
[Java] 연산자의 종류  (0) 2020.12.30
[Java] String 배열  (0) 2020.12.25
반응형

Java Optional

 

Optional은 객체가 null값을 가질 때 불편함을 덜고자 Java 8에서 처음 도입되었습니다. Java에서는 null 값을 직접 다루는 것을 권장하지 않고 있는데, 직접 다루다 보면 NullPointerException이 발생하는 것을 자주 겪습니다.

 

null값을 가지는 객체는 null값 체크를 위한 코드가 필요하여 코드가 길어지고 여러 객체에서 이를 반복하면 코드가 장황해질 수밖에 없습니다. 이러한 불편함을 덜어주는 클래스가 null값을 감쌀 수 있는 Wrapper 클래스인 Optional입니다.

 

 

Optional 객체 생성

 

빈 객체 생성은 .empty() 메소드를 사용합니다.

 

Optional<String> empty = Optional.empty();

 

.of() 메소드를 사용하여 객체를 생성할 수 있습니다. 하지만 .of() 메소드에 전달된 인자는 null이 들어갈 수 없습니다. null이 들어갈 경우 NullPointerException이 발생합니다.

 

String name = "Rooney";

Optional<String> optName = Optional.of(name);

 

null이 들어갈 수도 있는 경우 ofNullable() 메소드를 사용할 수 있습니다. 이 메소드를 사용하면 인자값이 null이어도 예외가 발생하지 않고 빈 Optional 객체가 반환됩니다.

 

String name = "Rooney";

Optional<String> optName = Optional.ofNullable(name);
반응형

'Java > Java 기초' 카테고리의 다른 글

[Java] StringUtills.equals(), equals() 차이  (0) 2021.10.01
[Java] .length, .length(), .size()  (0) 2021.07.08
[Java] 증감 연산자 기초  (0) 2021.07.06
[Java] 연산자의 종류  (0) 2020.12.30
[Java] String 배열  (0) 2020.12.25
반응형

Java의 .length, .length(), .size()

 

Java에서 길이를 구하는 대표적인 메소드는 .length.length(), .size()가 있습니다.

 

.length는 배열의 길이를 확인할 때 사용되고, .length()는 문자열의 길이를, .size는 Collections Framework의 ArrayList의 길이를 확인할 때 사용합니다.

 

종류 메소드
배열 .length
문자열 .length()
ArrayList .size()

 

public class Exam {

    public static void main(String[] args) {
    
        String word = "Hello World";
        
        int[] array = {1,2,3,4,5};
        
        System.out.println(word.length());
        
        System.out.println(array.length);
    
    }
    
}

 

<출력>

 

11

5

 

이차원 배열 .length

 

이차원 배열에서는 .length로 행과 열의 길이를 알 수 있습니다.

 

변수명.length 는 배열의 행 수를 의미하고, 변수명[0].length 는 배열의 0번째 행의 총 길이를 구하게 됩니다.

 

public class Exam {

    public static void main(String[] args) {
    
        int[][] array = new int[6][7];
        
        System.out.println(array.length);
        System.out.println(array[0].length);
    
    }

}

<출력>

 

6

7

반응형

'Java > Java 기초' 카테고리의 다른 글

[Java] StringUtills.equals(), equals() 차이  (0) 2021.10.01
[Java] Optional  (0) 2021.07.22
[Java] 증감 연산자 기초  (0) 2021.07.06
[Java] 연산자의 종류  (0) 2020.12.30
[Java] String 배열  (0) 2020.12.25

+ Recent posts