搜尋
首頁科技週邊人工智慧如何讓ChatGPT充當細緻入微的Java程式碼優化工?

註:本文使用New Bing(GPT4.0)示範

1、讓他扮演一個Java軟體開發者

第一步:我們讓ChatGPT扮演一個Java軟體開發者的角色

  • #提示詞外掛程式:位址:ChatGPT BingChat GPT3 Prompt Generator App (Streamlit) - a Hugging Face Space by Kaludi

Java Software Developer  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程式碼範例

  • #Bad Java Example:
#
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和循環嵌套,甚至實現部分設計模式。」

如何讓ChatGPT充當細緻入微的Java程式碼優化工?

// 定义一个接口,表示不同的运算策略
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、請他寫個單一測試

第四步:我們最後讓他收下尾-寫個單測吧

如何讓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會使用你的問答語料進行訓練;其次,你無法預料在什麼Prompt提示詞下,LLM模型會講你無意中洩露的信息回答出去。

瑕不掩瑜,ChatGPT為代表的LLM模型,在充當我們無所不知的老師、充當不知疲倦的通用Util代碼編寫者這些角色時能極大的提高我們的開發效率,尤其在數據分析、前端、單測、重構等領域。

就像文章第一步寫的一樣,ChatGPT就像是一個百變身份,你可以讓他扮演任何角色,而每一個角色都能在這個角色範圍內幫助我們獲得更美好的生活。

更有意思的用法期待大家的發掘。


#

以上是如何讓ChatGPT充當細緻入微的Java程式碼優化工?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
微軟工作趨勢指數2025顯示工作場所容量應變微軟工作趨勢指數2025顯示工作場所容量應變Apr 24, 2025 am 11:19 AM

由於AI的快速整合而加劇了工作場所的迅速危機危機,要求戰略轉變以外的增量調整。 WTI的調查結果強調了這一點:68%的員工在工作量上掙扎,導致BUR

AI可以理解嗎?中國房間的論點說不,但是對嗎?AI可以理解嗎?中國房間的論點說不,但是對嗎?Apr 24, 2025 am 11:18 AM

約翰·塞爾(John Searle)的中國房間論點:對AI理解的挑戰 Searle的思想實驗直接質疑人工智能是否可以真正理解語言或具有真正意識。 想像一個人,對下巴一無所知

中國的'智能” AI助手回應微軟召回的隱私缺陷中國的'智能” AI助手回應微軟召回的隱私缺陷Apr 24, 2025 am 11:17 AM

與西方同行相比,中國的科技巨頭在AI開發方面的課程不同。 他們不專注於技術基準和API集成,而是優先考慮“屏幕感知” AI助手 - AI T

Docker將熟悉的容器工作流程帶到AI型號和MCP工具Docker將熟悉的容器工作流程帶到AI型號和MCP工具Apr 24, 2025 am 11:16 AM

MCP:賦能AI系統訪問外部工具 模型上下文協議(MCP)讓AI應用能夠通過標準化接口與外部工具和數據源交互。由Anthropic開發並得到主要AI提供商的支持,MCP允許語言模型和智能體發現可用工具並使用合適的參數調用它們。然而,實施MCP服務器存在一些挑戰,包括環境衝突、安全漏洞以及跨平台行為不一致。 Forbes文章《Anthropic的模型上下文協議是AI智能體發展的一大步》作者:Janakiram MSVDocker通過容器化解決了這些問題。基於Docker Hub基礎設施構建的Doc

使用6種AI街頭智能策略來建立一家十億美元的創業使用6種AI街頭智能策略來建立一家十億美元的創業Apr 24, 2025 am 11:15 AM

有遠見的企業家採用的六種策略,他們利用尖端技術和精明的商業敏銳度來創造高利潤的可擴展公司,同時保持控制。本指南是針對有抱負的企業家的,旨在建立一個

Google照片更新解鎖了您所有圖片的驚人Ultra HDRGoogle照片更新解鎖了您所有圖片的驚人Ultra HDRApr 24, 2025 am 11:14 AM

Google Photos的新型Ultra HDR工具:改變圖像增強的遊戲規則 Google Photos推出了一個功能強大的Ultra HDR轉換工具,將標準照片轉換為充滿活力的高動態範圍圖像。這種增強功能受益於攝影師

Descope建立AI代理集成的身份驗證框架Descope建立AI代理集成的身份驗證框架Apr 24, 2025 am 11:13 AM

技術架構解決了新興的身份驗證挑戰 代理身份集線器解決了許多組織僅在開始AI代理實施後發現的問題,即傳統身份驗證方法不是為機器設計的

Google Cloud Next 2025以及現代工作的未來Google Cloud Next 2025以及現代工作的未來Apr 24, 2025 am 11:12 AM

(注意:Google是我公司的諮詢客戶,Moor Insights&Strateging。) AI:從實驗到企業基金會 Google Cloud Next 2025展示了AI從實驗功能到企業技術的核心組成部分的演變,

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具