I am getting error as

Constructor not defined: [weather001.weatherresult].()

at the time of creating instance for wrapper class. below is the code.

public class weather001 {

    public string city {set;get;}
    public string result {set;get;}
    public string nameofcity {set;get;}
    public list<weatherresult> wccc{set;get;}
    public weatherresult wc{set;get;}

    public void makeGetCallout() {

        Http http = new Http();

        HttpRequest request = new HttpRequest();
        String requestEndpoint = 'https://api.openweathermap.org/data/2.5/forecast';

       requestEndpoint += '?q=' + city;
        requestEndpoint += '&units=metric';
    requestEndpoint += '&APPID=' + '21ea14e29fcf2a9f90a209e267f7847c';

        request.setEndpoint(requestEndpoint );


        // The response is in JSON format.

        HttpResponse response = http.send(request);
        if (response.getStatusCode() == 200) {
            result =response.getBody();

            weatherresult wc = new weatherresult();

    public class weatherresult{
        public Integer id {get;set;} 
        public String main {get;set;} 
        public String description {get;set;} 
        public String icon {get;set;} 
        public weatherresult(Integer k,string m,string des,string ic){
            id = k;
            main = m;
            description = des;
            icon = ic;

1 Answer 1


This error is pretty much exactly what it says. You're calling a no-argument constructor:

        weatherresult wc = new weatherresult(); 

but your wrapper class only defines one constructor, which requires four arguments:

    public weatherresult(Integer k,string m,string des,string ic)

You must either call the constructor with those four arguments, or define a no-argument constructor within the class weatherresult.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.