>  기사  >  기술 주변기기  >  ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?

ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-05-04 09:55:06921검색

참고: 이 문서에서는 데모를 위해 New Bing(GPT4.0)을 사용합니다

1. 그에게 Java 소프트웨어 개발자 역할을 맡게 합니다. 1단계: ChatGPT가 Java 소프트웨어 개발자 역할을 하게 합니다.

    프롬프트 단어 플러그인: 주소: ChatGPT BingChat GPT3 프롬프트 생성기 앱(Streamlit) - 포옹하는 얼굴 공간 by Kaludi
Java 소프트웨어 개발자 Java 소프트웨어 개발자

I want you to act as a Java software developer.
 I will provide you with a list of commands and you will implement them. 
My first request is "I need help creating a Java application."

ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까? 2. 그렇지 않습니다. 하나의 Java 코드 예제를 준비하는 것이 좋습니다

두 번째 단계: 잘못 작성된 Java 코드 예제를 준비합니다

    잘못된 Java 예제:
  • public int calculateUsingIfElse(int a, int b, String operator) {
    int result = 0;
    if (operator.equals("add")) {
    result = a + b;
    } else if (operator.equals("subtract")) {
    result = a - b;
    } else if (operator.equals("multiply")) {
    result = a * b;
    } else if (operator.equals("divide")) {
    if (b == 0) {
    throw new IllegalArgumentException("Cannot divide by zero");
    }
    result = a / b;
    } else if (operator.equals("modulus")) {
    if (b == 0) {
    throw new IllegalArgumentException("Cannot divide by zero");
    }
    result = a % b;
    } else if (operator.equals("power")) {
    result = (int) Math.pow(a, b);
    } else if (operator.equals("square root")) {
    if (a < 0) {
    throw new IllegalArgumentException("Cannot take square root of negative number");
    }
    result = (int) Math.sqrt(a);
    } else if (operator.equals("absolute value")) {
    result = Math.abs(a);
    } else if (operator.equals("negate")) {
    result = -a;
    } else {
    throw new IllegalArgumentException("Invalid operator");
    }
    return result;
    }

ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?3 이 코드를 최적화하게 하세요

세 번째 단계: newBing을 시키세요. (ChatGPT) 이 코드를 최적화하고

    "하위 기능 자동 분할, if 및 루프 중첩 감소, 일부 디자인 패턴 구현 등 보다 우아한 코드 구조로 구성"하도록 요청하세요.
  • // 定义一个接口,表示不同的运算策略
    public interface OperationStrategy {
    int apply(int a, int b);
    }
    
    
    // 定义一个枚举,表示不同的运算符和对应的策略
    public enum Operator {
    ADD((a, b) -> a + b),
    SUBTRACT((a, b) -> a - b),
    MULTIPLY((a, b) -> a * b),
    DIVIDE((a, b) -> {
    if (b == 0) {
    throw new ArithmeticException("Cannot divide by zero");
    }
    return a / b;
    }),
    MODULUS((a, b) -> {
    if (b == 0) {
    throw new ArithmeticException("Cannot divide by zero");
    }
    return a % b;
    }),
    POWER((a, b) -> (int) Math.pow(a, b)),
    SQUARE_ROOT((a, b) -> {
    if (a < 0) {
    throw new ArithmeticException("Cannot take square root of negative number");
    }
    return (int) Math.sqrt(a);
    }),
    ABSOLUTE_VALUE(Math::abs),
    NEGATE(a -> -a);
    
    
    private final OperationStrategy strategy;
    
    
    Operator(OperationStrategy strategy) {
    this.strategy = strategy;
    }
    
    
    public int apply(int a, int b) {
    return strategy.apply(a, b);
    }
    }
    
    
    // 定义一个方法,根据运算符和操作数来计算结果
    public int calculateUsingStrategy(int a, int b, String operatorName) {
    
    
     // 根据运算符名称找到对应的枚举常量,如果没有找到则抛出异常
     Operator operator = Operator.valueOf(operatorName.toUpperCase());
     if (operator == null) {
     throw new IllegalArgumentException("Invalid operator");
     }
    
    
     // 调用枚举常量的apply方法来执行相应的策略
     return operator.apply(a,b);
    }
    4. 단일 테스트 작성 허용
  • 4단계: 마침내 완료하도록 허용 - 단일 테스트 작성

ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?

import org.junit.Test;
import static org.junit.Assert.*;


// 定义一个测试类,用@Test注解标记要执行的测试方法
public class CalculatorTest {


// 定义一个测试方法,用assertEquals方法来验证计算结果是否正确
@Test
public void testAdd() {
int result = calculateUsingStrategy(3, 5, "add");
assertEquals(8, result);
}


// 定义其他的测试方法,分别测试不同的运算符和操作数
@Test
public void testSubtract() {
int result = calculateUsingStrategy(10, 4, "subtract");
assertEquals(6, result);
}


@Test
public void testMultiply() {
int result = calculateUsingStrategy(7, 9, "multiply");
assertEquals(63, result);
}


@Test
public void testDivide() {
int result = calculateUsingStrategy(12, 3, "divide");
assertEquals(4, result);
}


 // 定义一个测试方法,用assertThrows方法来验证抛出了预期的异常
 @Test
 public void testDivideByZero() {
 assertThrows(ArithmeticException.class,
 () -> calculateUsingStrategy(10,0,"divide"));
 }


 // 定义其他的测试方法,分别测试不同的异常情况


 @Test
 public void testModulusByZero() {
 assertThrows(ArithmeticException.class,
 () -> calculateUsingStrategy(10,0,"modulus"));
 }


 @Test
 public void testSquareRootOfNegativeNumber() {
 assertThrows(ArithmeticException.class,
 () -> calculateUsingStrategy(-4,-2,"square root"));
 }


 // 定义一个测试方法,用assertThrows方法来验证抛出了预期的异常
 @Test
 public void testInvalidOperator() {
 assertThrows(IllegalArgumentException.class,
 () -> calculateUsingStrategy(10,-2,"foo"));
 }
}

마지막으로 데이터 보안이 가장 큰 문제입니다. 무작위 데이터를 게시하지 마세요. 특히 백엔드 핵심 스토리지 계정 비밀번호, 회사 핵심 비즈니스 데이터, 부서 핵심 전략 계획 등과 관련된 경우 ChatGPT에 적용됩니다. 우선 ChatGPT는 교육을 위해 질문 및 답변 코퍼스를 사용합니다. 둘째, 실수로 유출된 정보로 LLM 모델이 어떤 프롬프트 단어에 응답할지 예측할 수 없습니다.

결함은 숨겨지지 않습니다. ChatGPT로 대표되는 LLM 모델은 특히 데이터 분석, 프런트 엔드, 단일 테스트, 재구성 및 기타 분야에서 전지전능한 교사이자 지치지 않는 일반 Util 코드 작성자 역할을 할 때 개발 효율성을 크게 향상시킬 수 있습니다.

ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?

글의 첫 번째 단계에 적힌 대로 ChatGPT는 다재다능한 아이덴티티와 같아서 어떤 역할이든 수행할 수 있으며

각 역할은 이 역할 범위 내에서 더 나은 삶을 달성하는 데 도움이 될 수 있습니다.

더 흥미로운 용도가 모두가 발견하기를 기다리고 있습니다.

위 내용은 ChatGPT를 세심한 Java 코드 최적화 프로그램으로 작동시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제