gpt4 book ai didi

java - 有什么方法可以降低以下java代码的复杂性吗?

转载 作者:行者123 更新时间:2023-12-02 09:41:01 24 4
gpt4 key购买 nike

我需要根据声纳可接受的水平降低以下java方法的复杂性。现在,它给出了像声纳问题一样的问题。

enter image description here

需要一些专家的帮助才能做到这一点。

public List<X> Y(final DateTime treatmentDiscontinueTime,
final List< P> validPrescribedPrescriptions)
{
final List<x> doseWrapperList = new ArrayList<>();
final int noOfPrescriptions = validPrescribedPrescriptions.size();

for (int prescriptionIndex = 0; prescriptionIndex < noOfPrescriptions; prescriptionIndex++)
{
final BasePrescribedPrescription basePrescribedPrescription = validPrescribedPrescriptions.get(prescriptionIndex);
final String firstDoseText = basePrescribedPrescription.getFirstText();
final String secondDoseText = basePrescribedPrescription.getSecondText();
final boolean accordingToSchedule = A.ACCORDING.equals(firstDoseText);
final boolean specificPrescription = A.SP.equals(firstDoseText);
final boolean specificVbTypePrescription = A.SPVB.equals(firstDoseText);

List<D> doseDetails = new ArrayList<>(basePrescribedPrescription.getDoseDetails());


final DateTime changedDosageEndDate =
getChangedDoseEndDate(basePrescribedPrescription.getActualTerminateDate(), treatmentDiscontinueTime);
final int noOfDosages = doseDetails.size();

for (int doseIndex = 0; doseIndex < noOfDosages; doseIndex++)
{
final D doseDetail = doseDetails.get(doseIndex);

if ((doseDetail.getStart().getStartDate() != null) && (changedDosageEndDate != null) &&
doseDetail.getStart().getStartDate().isAfter(changedDosageEndDate))
{
continue;
}

String previewDoseText;

if (accordingToSchedule)
{
previewDoseText = X
}
else if (specificPrescription)
{
previewDoseText = Y;
}
else if (specificVbTypePrescription)
{
previewDoseText = Z;
}
else if (noOfDosages == 2)
{

previewDoseText = ((doseIndex == 0) ? secondDoseText : firstDoseText);
}
else
{
previewDoseText = firstDoseText;
}

final boolean isUnplanned =isuNplaned()



if (!isUnplanned)
{
doseStart = getStartDate();
doseEnd = getEndDate();
}


doseWrapperList.add(new DoseInfoLiteDTOWrapper(previewDoseText, doseStart, doseEnd, doseDetail));

}
}
return doseWrapperList;
}

我需要一些专家的帮助来解决这个声纳问题。我想用不同的方法来提取代码片段,将此方法分解为小部分。但仍然找不到合适的方法来做到这一点。

最佳答案

我认为这并不难弄清楚:

  • 使用简单的 For 循环
  • 创建更多小方法来为 For 循环做小(清晰)事情
  • 阻止 if/esle:使用简单语句

提示:研究 TDD 以尽可能编写干净的代码

关于java - 有什么方法可以降低以下java代码的复杂性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com