반응형

Java 191

스택 트레이스를 잃지 않고 Java에서 예외 재투입

스택 트레이스를 잃지 않고 Java에서 예외 재투입 C# 에서는,throw;스택 트레이스를 유지하면서 예외를 재투입하려면 다음 명령을 사용합니다. try { ... } catch (Exception e) { if (e is FooException) throw; } Java에는 이와 같은 것이 있습니까(원래 스택트레이스를 잃지 않는 것).catch (WhateverException e) { throw e; } 검출한 예외를 다시 던지기만 하면 됩니다(주변 메서드는 서명 등을 통해 이를 허용해야 합니다).이 예외는 원래 스택트레이스를 유지합니다다음을 원합니다. try { ... } catch (FooException fe){ throw fe; } catch (Exception e) { // Note: don..

sourcecode 2022.07.31

"Java Date Format is not threadsafe" (자바 날짜 포맷은 스레드 세이프가 아닙니다)는 어떤 결과를 초래합니까?

"Java Date Format is not threadsafe" (자바 날짜 포맷은 스레드 세이프가 아닙니다)는 어떤 결과를 초래합니까? Java Date Format이 스레드 세이프가 되지 않는 것에 대해 모두가 주의를 기울이고 있으며, 저는 그 개념을 이론적으로 이해하고 있습니다. 하지만 이것 때문에 우리가 직면할 수 있는 실제적인 문제들을 시각화할 수 없습니다.예를 들어, 클래스에 DateFormat 필드가 있고 다중 스레드 환경에서 클래스의 다른 메서드(포맷 날짜)에서 동일한 필드가 사용됩니다. 원인: 포맷 예외와 같은 예외 데이터의 불일치 다른 문제는요? 그리고 왜 그런지 설명해 주세요.시험 삼아 한번 해 봅시다. 에서는 여러 스레드를 을 보여 줍니다.SimpleDateFormat. 프로그램:..

sourcecode 2022.07.31

아이디어: javac: 소스 릴리스 1.7에는 타깃 릴리스 1.7이 필요합니다.

아이디어: javac: 소스 릴리스 1.7에는 타깃 릴리스 1.7이 필요합니다. JUnit 테스트를 실행할 때 IntelliJ IDEA를 사용하면 어떻게 수정하면 좋을까요? SDK 1.7 사용 모듈 언어 레벨은 1.7 Maven 빌드는 정상적으로 동작합니다.(그 때문에 IDEA 구성 문제에서 이 점을 믿고 있습니다)대부분의 경우 Maven에서 가져온 잘못된 컴파일러 옵션이 여기에 있습니다. 또한 스크린샷에 설명된 프로젝트 및 모듈 바이트 코드(타깃) 버전 설정도 확인하십시오. 소스 언어 레벨이 설정되어 있는 다른 장소: 프로젝트 구조 | 프로젝트 프로젝트 구조 | 모듈 (모든 모듈 확인)| 출처 기본 언어 레벨은 1.5(5.0)이며, 위 스크린샷에 이 버전이 모듈 언어 레벨로 표시됩니다. 이것은 mave..

sourcecode 2022.07.31

Java의 +=, -=, *=, /= 복합 할당 연산자가 캐스팅을 요구하지 않는 이유는 무엇입니까?

Java의 +=, -=, *=, /= 복합 할당 연산자가 캐스팅을 요구하지 않는 이유는 무엇입니까? 지금까지 저는 예를 들어 다음과 같이 생각했습니다. i += j; 단순한 숏컷이었습니다. i = i + j; 하지만 이걸 시도하면: int i = 5; long j = 8; 그리고나서i = i + j;컴파일은 안 되지만i += j;정상적으로 컴파일 됩니다. 그 말은 실제로i += j;이런 걸 위한 지름길이야i = (type of i) (i + j)?항상 그렇듯이 JLS가 답을 가지고 있습니다.이 경우, §15.26.2 복합 할당 연산자.발췌: 양식의 복합 할당 표현식E1 op= E2와 동등하다E1 = (T)((E1) op (E2)),어디에T의 유형입니다.E1단,E1는 1회만 평가됩니다. § 15.26.2에..

sourcecode 2022.07.31

Java에서 어레이를 세트로 변환하는 방법

Java에서 어레이를 세트로 변환하는 방법 어레이를 Java의 Set으로 변환하고 싶습니다.(루프를 사용하는 등) 몇 가지 분명한 방법이 있지만, 다음과 같은 좀 더 깔끔한 방법이 필요합니다. java.util.Arrays.asList(Object[] a); 좋은 생각 있어요?다음과 같이 합니다. Set mySet = new HashSet(Arrays.asList(someArray)); Java 9+에서는 수정할 수 없는 설정이 OK인 경우: Set mySet = Set.of(someArray); Java 10+에서는 범용 타입 파라미터는 어레이컴포넌트 타입에서 유추할 수 있습니다. var mySet = Set.of(someArray); 조심하세요. Set.of가 Ilgulate Argument를 슬로우..

sourcecode 2022.07.30

새로운 요소를 추가하기 위해 Enum을 하위 분류할 수 있습니까?

새로운 요소를 추가하기 위해 Enum을 하위 분류할 수 있습니까? 기존 열거형을 가져와 다음과 같이 요소를 추가합니다. enum A {a,b,c} enum B extends A {d} /*B is {a,b,c,d}*/ 자바에서도 가능합니까?아니요, Java에서는 할 수 없습니다. 것 말고도d그렇다면 아마도 의 예가 될 것이다.A으로는 '사상이지만, '사상'밖에, '사상'은 '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상', '사상',A이 경우 열거형이 잘 알려진 값 집합이라는 의미가 없어집니다. 사용 방법에 대해 자세히 알려주시면 대체 솔루션을 제안할 수 있습니다.enums는 가능한 값의 완전한 열거를 나타냅니다.따라..

sourcecode 2022.07.30

Java에 goto 스테이트먼트가 있나요?

Java에 goto 스테이트먼트가 있나요? 나는 이것에 대해 혼란스럽다.우리는 대부분 자바어에는 goto 문장이 없다고 들었다. 그런데 그게 자바 키워드 중 하나라는 걸 알게 됐어요.어디에 사용할 수 있습니까?사용할 수 없다면 왜 자바에 키워드로 포함시켰을까요?James 은 James Gosling의 JVM을 .goto이 기능을 불필요하게 삭제했습니다. 이유 : ★★★★★goto는, 은 보다 쉬운할 수 것이 예: 「이러한 문장으로 치환할 수 있습니다」).break/continue이치노 출처 : James Gosling, Q&A 세션Java 키워드 리스트는,goto쓰이지 않다 원래의 JVM(@VitaliiFedorenko의 답변 참조)에 있었지만, 그 후 삭제되었습니다.이것은 아마도 Java의 새로운 버전..

sourcecode 2022.07.30

Java에서 Comparator를 사용하여 정렬하는 방법

Java에서 Comparator를 사용하여 정렬하는 방법 비교기 사용법은 배웠지만 비교기에 문제가 있습니다.코드에 오류가 있습니다. Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comparable at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.Collections.sort(Unknown Source) at New.TestPeople.main(TestPeople.java:18) 코드는 다음과 같습니다. import java.util.Comparator..

sourcecode 2022.07.30

No Such Method Error 수정 방법

No Such Method Error 수정 방법 NoSuchMethodErrorJava java java java java java java java java java java java java java java java.무엇이 문제이며 어떻게 수정해야 합니까?더 이상의 정보가 없으면 문제를 특정하기 어렵지만 근본 원인은 메서드가 없는 클래스의 다른 버전에 대해 클래스를 컴파일했을 가능성이 높기 때문입니다.실행할 때 사용하고 있는 버전과 다릅니다. 스택 트레이스를 보세요...라이브러리의 개체에 대해 메서드를 호출할 때 예외가 나타나는 경우 컴파일 및 실행 시 다른 버전의 라이브러리를 사용하고 있을 가능성이 높습니다.두 곳 모두 올바른 버전을 가지고 있는지 확인하십시오. 클래스로 인스턴스화된 객체에 대해 ..

sourcecode 2022.07.30

Mockito의 일반적인 "any()" 메서드 사용

Mockito의 일반적인 "any()" 메서드 사용 나는 일련의 배열을 예상하는 메서드와의 인터페이스를 가지고 있다.Foo: public interface IBar { void doStuff(Foo[] arr); } 저는 Mockito를 사용하여 이 인터페이스를 조롱하고 있습니다. 그리고 저는 단언하고 싶습니다.doStuff()호출됩니다만, 전달된 인수의 유효성을 검증하고 싶지는 않습니다.「 Don't care 」 다음 코드를 작성하려면 어떻게 작성합니까?any(), 일반적인 메서드가 아닌anyObject()? IBar bar = mock(IBar.class); ... verify(bar).doStuff((Foo[]) anyObject()); 이거면 될 것 같아 import static org.mocki..

sourcecode 2022.07.30
반응형