Maison >Java >Impossible de résoudre la méthode - Intellij

Impossible de résoudre la méthode - Intellij

WBOY
WBOYavant
2024-02-22 14:07:061464parcourir

l'éditeur php Yuzai vous présente le sujet de cet article : Réponses aux questions fréquemment posées en programmation Java. Aujourd'hui, nous allons discuter de l'un des problèmes courants dans l'environnement de développement Intellij : l'incapacité de résoudre les méthodes. Lors du développement Java, rencontrer une situation dans laquelle une méthode ne peut pas être résolue peut être un casse-tête, mais en fait il ne s'agit probablement que d'un problème mineur. Ensuite, nous vous fournirons une analyse détaillée des causes possibles de ce problème et vous proposerons des solutions pour vous aider à programmer plus facilement.

Contenu de la question

J'essaie de savoir pourquoi j'obtiens l'erreur "setobservationcode is neverused" dans la deuxième méthode. Le deuxième extrait montre où les tests unitaires sont utilisés. Avec les tests unitaires, cela me donne une erreur « Impossible de résoudre la méthode 'setobservationcode' dans 'resourcehandler'. J'ai vu des personnes dire qu'elles avaient résolu l'erreur en invalidant le cache et en redémarrant, mais cela n'a pas fonctionné pour moi.

public class ResourceHandlerTest extends TestCase {

    FhirContext ctx = null;
    IParser parser = null;

    // Other methods...

    public String getId(Resource resource) {
        if (resource.getIdElement() != null) {
            // Use IdType to extract the ID without additional details such as base URL or resource type.
            IdType idType = resource.getIdElement();
            return idType.getIdPart();
        } else {
            // Handle the case where the resource does not have an ID.
            return null; // Or throw an exception, depending on your requirements.
        }
    }

    public Observation setObservationCode(Observation observation, Coding coding) {
        if (observation.getCode() == null) {
            observation.setCode(new CodeableConcept().addCoding(coding));
        } else {
            observation.getCode().addCoding(coding);
        }
        return observation;
    }

    
public Observation setObservationCode(Observation observation, Coding coding) {
            if (observation.getCode() == null) {
                observation.setCode(new CodeableConcept().addCoding(coding));
            } else {
                observation.getCode().addCoding(coding);
            }
            return observation;
        }
    
      public Observation setObservationCode(Observation observation, String system, String code, String display) {
            System.out.println("Debug: Observation Before - " + observation);
    
            System.out.println("Debug: System - " + system);
            System.out.println("Debug: Code - " + code);
            System.out.println("Debug: Display - " + display);
    
            Coding coding = new Coding().setSystem(system).setCode(code).setDisplay(display);
    
            return setObservationCode(observation, coding);
        }

-----------------------------------------------------------------------------------------------

    public void testSetObservationCode() throws Exception {
            if (ctx == null) ctx = FhirContext.forR4();
            if (parser == null) parser = ctx.newJsonParser();
    
            String observationJsonFile = "src/resources/observation.json";
            String observationJson = "";
            try {
                observationJson = new String(Files.readAllBytes(Paths.get(observationJsonFile)));
            }
            catch (Exception e) { System.err.println("Failed to read observation.json file."); }
    
            Observation correctObservation = parser.parseResource(Observation.class, observationJson);
    
            ResourceHandler studentResourceHandler = new ResourceHandler();
    
            String expectedSystem = "http://example.com/system";
            String expectedCode = "12345";
            String expectedDisplay = "Test Code";
    
            Coding coding = new Coding().setSystem(expectedSystem).setCode(expectedCode).setDisplay(expectedDisplay);
            Observation modifiedObservation = studentResourceHandler.setObservationCode(correctObservation, coding);
    
            assertEquals(expectedSystem, modifiedObservation.getCode().getCodingFirstRep().getSystem());
            assertEquals(expectedCode, modifiedObservation.getCode().getCodingFirstRep().getCode());
            assertEquals(expectedDisplay, modifiedObservation.getCode().getCodingFirstRep().getDisplay());
    
        }

Solution de contournement

Vous appelez la première méthode de votre test, mais pas la deuxième méthode.

La dernière ligne du test, la ligne 4, a 2 paramètres, c'est le premier paramètre. Intellij ne peut donc pas détecter l’utilisation du second.

Observation modifiedObservation = studentResourceHandler.setObservationCode(correctObservation, coding);

Regardez la structure du bloc de code principal, idéalement vous devriez appeler la deuxième définition (avec 4 paramètres) qui appelle une autre définition.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer