반응형

Java 29

Java 8: Java.util.function의 TriFunction(및 kin)은 어디에 있습니까?아니면 대체방법이 뭐죠?

Java 8: Java.util.function의 TriFunction(및 kin)은 어디에 있습니까?아니면 대체방법이 뭐죠? java.util.function이 보입니다.BiFunction을 통해 다음을 수행할 수 있습니다. BiFunction f = (x, y) -> { return 0; }; 그것만으로는 불충분하고 TriFunction이 필요한 경우에는 어떻게 해야 합니까?그건 존재하지 않아! TriFunction f = (x, y, z) -> { return 0; }; 저만의 TriFunction을 정의할 수 있다는 것을 덧붙여야 할 것 같습니다.표준 라이브러리에 TriFunction을 포함하지 않는 이유를 이해하려고 합니다.TriFunction이 필요한 경우 다음 작업을 수행합니다. @Funct..

source 2023.02.07

JAR 파일 외부에서 속성 파일을 읽습니다.

JAR 파일 외부에서 속성 파일을 읽습니다. 실행할 수 있도록 모든 코드가 보관되어 있는 JAR 파일이 있습니다.각 실행 전에 변경/편집해야 하는 속성 파일에 액세스해야 합니다.속성 파일을 JAR 파일이 있는 디렉토리와 동일한 디렉토리에 보관하고 싶다.자바에게 그 디렉토리에서 속성 파일을 가져오라고 할 수 있는 방법이 있습니까? 주의: 속성 파일을 홈 디렉토리에 보관하거나 명령줄 인수로 속성 파일의 경로를 전달하지 않습니다. 그래서, 당신은 당신의 치료와.properties파일을 주/실행 가능 자리의 리소스가 아닌 파일로 주/실행 가능 자리와 동일한 폴더에 저장합니다.이 경우 저만의 해결책은 다음과 같습니다. 우선: 프로그램 파일 아키텍처는 다음과 같습니다(메인 프로그램이 main.jar이고 메인 속성 ..

source 2023.01.29

루프 후 문자열 버퍼/빌더 지우기

루프 후 문자열 버퍼/빌더 지우기 다음 반복에서는 클리어 스트링 버퍼를 사용하기 위해 Java에서 스트링 버퍼를 클리어하려면 어떻게 해야 합니까?하나의 옵션은 다음과 같이 삭제 방법을 사용하는 것입니다. StringBuffer sb = new StringBuffer(); for (int n = 0; n < 10; n++) { sb.append("a"); // This will clear the buffer sb.delete(0, sb.length()); } 다른 옵션(비트 클리너)은 setLength(int len)를 사용합니다. sb.setLength(0); 자세한 내용은 Javadoc을 참조하십시오.를 가장 쉽게 재사용할 수 있는 방법StringBuffer그 방법을 사용하는 것이다.setLength(..

source 2023.01.29

사설 컨스트럭터에 테스트 적용 범위를 추가하려면 어떻게 해야 합니까?

사설 컨스트럭터에 테스트 적용 범위를 추가하려면 어떻게 해야 합니까? 코드는 다음과 같습니다. package com.XXX; public final class Foo { private Foo() { // intentionally empty } public static int bar() { return 1; } } 테스트는 다음과 같습니다. package com.XXX; public FooTest { @Test void testValidatesThatBarWorks() { int result = Foo.bar(); assertEquals(1, result); } @Test(expected = java.lang.IllegalAccessException.class) void testValidatesThatCl..

source 2023.01.29

null 인수에 대한 메서드 오버로드

null 인수에 대한 메서드 오버로드 매개 변수를 사용하여 다음 세 가지 방법을 추가했습니다. public static void doSomething(Object obj) { System.out.println("Object called"); } public static void doSomething(char[] obj) { System.out.println("Array called"); } public static void doSomething(Integer obj) { System.out.println("Integer called"); } 가 할 때doSomething(null)그 후 컴파일러는 애매한 메서드로 오류를 발생시킵니다.그래서 문제가 되는 건Integer ★★★★★★★★★★★★★★★★★」ch..

source 2023.01.29

피어에 의해 TCP 소켓이 정상적으로 닫힌 것을 I/O를 시도하지 않고 검출할 수 없는 이유는 무엇입니까?

피어에 의해 TCP 소켓이 정상적으로 닫힌 것을 I/O를 시도하지 않고 검출할 수 없는 이유는 무엇입니까? 최근 질문의 후속으로, Java에서는 TCP 소켓에서 읽기/쓰기를 시도하지 않고서는 왜 소켓이 피어에 의해 정상적으로 닫혔는지 알 수 없는 것입니까?이것은 프리 NIO를 사용하든 말든 마찬가지인 것 같습니다.Socket 는 NIOSocketChannel. 피어가 TCP 접속을 정상적으로 닫으면 접속 양쪽에 있는TCP 스택은 그 사실을 인식합니다.은, 「」( 「셧다운 상태가 .FIN_WAIT2 측)은, 가 됩니다.CLOSE_WAIT에 방법이 없는 이유는 무엇입니까?Socket ★★★★★★★★★★★★★★★★★」SocketChannelTCP 스택에 문의하여 기본 TCP 연결이 종료되었는지 여부를 확인할 ..

source 2023.01.15

달력이 잘못된 달을 반환함

달력이 잘못된 달을 반환함 이 질문에는 이미 답변이 있습니다. Java 캘린더에서 1월 달이 0인 이유는 무엇입니까? (17개의 답변) 닫힘2년 전에요. Calendar rightNow = Calendar.getInstance(); String month = String.valueOf(rightNow.get(Calendar.MONTH)); 위의 스니펫을 실행한 후 month에는 11이 아닌 10의 값이 지정됩니다.왜?월은 1이 아닌 0부터 지수화되므로 10은 11월, 11은 12월입니다.0부터 시작합니다. 문서를 확인하십시오.많은 답변에서 알 수 있듯이 월은 0으로 시작합니다. 다음 힌트를 드리겠습니다.SimpleDateFormat을 사용하여 이달의 String-representation을 취득해야 합니..

source 2023.01.15

왜 java.lang이야?객체가 추상적이지 않습니까?

왜 java.lang이야?객체가 추상적이지 않습니까? 이 질문에는 이미 답변이 있습니다. 닫힘9년 전. 중복 가능성: Java: 객체 클래스가 추상이라고 선언되지 않은 이유 오브젝트 클래스는 모두 자바에서 기본 클래스인데 추상 클래스가 아닌 이유는 무엇입니까? 정말 오랫동안 이 질문을 해왔는데 순전히 호기심 때문에 하는 질문이에요, 그게 전부에요.추상적이지 않기 때문에 내 코드나 누구의 코드도 깨지지 않는다. 하지만 왜 그들이 그것을 구체화했는지 궁금했다. 왜 누군가가 "인스턴스"를 원했을까요?이 오브젝트 클래스의 참조)한 가지 예는 잠금에 오브젝트 인스턴스를 사용하는 동기화 코드가 불량하다는 것입니다(적어도 한 번은 이렇게 사용했습니다).제 잘못입니다). 오브젝트 클래스의 "인스턴스"를 실제로 사용할 ..

source 2023.01.09

Java 8의 findAny()와 findFirst()의 차이점

Java 8의 findAny()와 findFirst()의 차이점 나는 조금 혼란스럽다Stream#findAny()그리고.Stream#findFirst()의StreamJava 8의 API 예를 들어 필터와 함께 사용할 경우 스트림에서 첫 번째 일치 요소가 반환되는 것으로 알고 있습니다. 그럼 왜 같은 작업에 두 가지 방법이 있을까요?내가 뭘 빼놓았나요? 예를 들어 필터와 함께 사용할 경우 스트림에서 첫 번째 일치 요소가 반환되는 것으로 알고 있습니다. 그렇지 않아요.javadoc에 따르면: 를 반환한다.Optional스트림의 일부 요소 또는 빈 요소를 기술하는 경우Optional스트림이 비어 있는 경우.이 동작은 명시적으로 확정적이지 않습니다.스트림 내의 요소를 자유롭게 선택할 수 있습니다.이는 병렬 운영..

source 2023.01.09

8자만의 UUID 생성

8자만의 UUID 생성 UUID 라이브러리는 32글자의 UUID를 생성합니다. 8글자만의 UUID를 생성하고 싶은데 가능한가요?UUID는 정의당 16바이트 숫자이기 때문에 불가능합니다.단, 물론 8글자의 고유 문자열을 생성할 수 있습니다(다른 답변 참조). 또, ID 의 일부에 고정 바이트가 포함되는 경우가 있기 때문에, 보다 긴 UUID 를 생성해 서브스트링 하는 것에 주의해 주세요(MAC, DCE, MD5 UUID 등). 해 보세요.RandomStringUtils apache.disclass: import org.apache.commons.lang3.RandomStringUtils; final int SHORT_ID_LENGTH = 8; // all possible unicode characters ..

source 2023.01.09
반응형