Why am I getting “Static method cannot be referenced from a non static context: String...

How to use ReplaceAll on an expression that contains a rule

Why is the US ranked as #45 in Press Freedom ratings, despite its extremely permissive free speech laws?

"Eavesdropping" vs "Listen in on"

Reference request: Grassmannian and Plucker coordinates in type B, C, D

Where do students learn to solve polynomial equations these days?

Audio Conversion With ADS1243

Lucky Feat: How can "more than one creature spend a luck point to influence the outcome of a roll"?

Reshaping json / reparing json inside shell script (remove trailing comma)

Physiological effects of huge anime eyes

Is a distribution that is normal, but highly skewed, considered Gaussian?

Won the lottery - how do I keep the money?

Which one is the true statement?

Why is information "lost" when it got into a black hole?

How to find image of a complex function with given constraints?

Do scriptures give a method to recognize a truly self-realized person/jivanmukta?

what's the use of '% to gdp' type of variables?

Does destroying a Lich's phylactery destroy the soul within it?

Is French Guiana a (hard) EU border?

What difference does it make using sed with/without whitespaces?

Is dried pee considered dirt?

Strange use of "whether ... than ..." in official text

Players Circumventing the limitations of Wish

Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact

Traduction de « Life is a roller coaster »



Why am I getting “Static method cannot be referenced from a non static context: String String.valueOf(Object)”?



The Next CEO of Stack Overflow
2019 Community Moderator ElectionNon static method cannot be referenced from a static context: Integer Date.dayOfYear()Static method able to be called/executed from class instantiated from type.newInstance() with interface. Expected?Static method cannot be referenced from a non static context: List<String>Can only initialize a map within context of a function? ( can't initialize within constructor too)Save Error in Test Class for @InvocableMethod: Static method cannot be referenced from a non static contextStatic method cannot be referenced from a non static context in testclassStatic method cannot be referenced from a non static context: System.Pattern System.Pattern.compile(String)Non static method cannot be referenced from a static contextStatic method cannot be referenced from a non static context (PageReference)Use void Apex method in Lightning Web Component












1















I have this static class called from my lightning component, but am getting the error




"Static method cannot be referenced from a non static context: String String.valueOf(Object)"




on the line where I try and calculate a start date from the string passed. What do I need to do to fix this?



@AuraEnabled
public static void generatePDF(myRec__c rec, string selquarter){
string selqenddate = selquarter.substringBetween('(', ')');
date startdate = (selqenddate.valueOf(selqenddate)).addMonths(-3).startofMonth;
myPDF(rec.id, '', '');
}









share|improve this question





























    1















    I have this static class called from my lightning component, but am getting the error




    "Static method cannot be referenced from a non static context: String String.valueOf(Object)"




    on the line where I try and calculate a start date from the string passed. What do I need to do to fix this?



    @AuraEnabled
    public static void generatePDF(myRec__c rec, string selquarter){
    string selqenddate = selquarter.substringBetween('(', ')');
    date startdate = (selqenddate.valueOf(selqenddate)).addMonths(-3).startofMonth;
    myPDF(rec.id, '', '');
    }









    share|improve this question



























      1












      1








      1








      I have this static class called from my lightning component, but am getting the error




      "Static method cannot be referenced from a non static context: String String.valueOf(Object)"




      on the line where I try and calculate a start date from the string passed. What do I need to do to fix this?



      @AuraEnabled
      public static void generatePDF(myRec__c rec, string selquarter){
      string selqenddate = selquarter.substringBetween('(', ')');
      date startdate = (selqenddate.valueOf(selqenddate)).addMonths(-3).startofMonth;
      myPDF(rec.id, '', '');
      }









      share|improve this question
















      I have this static class called from my lightning component, but am getting the error




      "Static method cannot be referenced from a non static context: String String.valueOf(Object)"




      on the line where I try and calculate a start date from the string passed. What do I need to do to fix this?



      @AuraEnabled
      public static void generatePDF(myRec__c rec, string selquarter){
      string selqenddate = selquarter.substringBetween('(', ')');
      date startdate = (selqenddate.valueOf(selqenddate)).addMonths(-3).startofMonth;
      myPDF(rec.id, '', '');
      }






      apex parameters static






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 3 hours ago









      Jayant Das

      17.4k21330




      17.4k21330










      asked 4 hours ago









      IreneIrene

      5052418




      5052418






















          2 Answers
          2






          active

          oldest

          votes


















          4














          The string class's valueOf() method is a static method.



          Static methods need to be called like this: Class.staticMethodName() i.e. String.valueOf()



          What you're currently doing is using an instance of a string to try to call a static method, which (as the error indicates) is not allowed.



          bad:



          selqenddate.valueOf(selqenddate)


          good:



          String.valueOf(selqenddate)


          Of course, you don't need to use String.valueOf() at all here because selquarter is a string, and substringBetween() also returns a string.



          Instead, you need to be using a method that takes a String as input, and gives you a Date as output such as Date.parse()






          share|improve this answer































            1














            As the error suggests, you are trying to use a static method valueOffrom String class on an instance of a String named selqenddate, which is not allowed.



            You are most likely are trying to construct a date from a string value, and that you will need to utilize the Date.valueOf()instead. Your code should look like something as below:



            Date startdate = 
            (Date.valueOf(selqenddate))
            .addMonths(-3)
            .toStartOfMonth();


            Note, there’s no property startOfMonth on Date class.






            share|improve this answer
























              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "459"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f255997%2fwhy-am-i-getting-static-method-cannot-be-referenced-from-a-non-static-context%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              4














              The string class's valueOf() method is a static method.



              Static methods need to be called like this: Class.staticMethodName() i.e. String.valueOf()



              What you're currently doing is using an instance of a string to try to call a static method, which (as the error indicates) is not allowed.



              bad:



              selqenddate.valueOf(selqenddate)


              good:



              String.valueOf(selqenddate)


              Of course, you don't need to use String.valueOf() at all here because selquarter is a string, and substringBetween() also returns a string.



              Instead, you need to be using a method that takes a String as input, and gives you a Date as output such as Date.parse()






              share|improve this answer




























                4














                The string class's valueOf() method is a static method.



                Static methods need to be called like this: Class.staticMethodName() i.e. String.valueOf()



                What you're currently doing is using an instance of a string to try to call a static method, which (as the error indicates) is not allowed.



                bad:



                selqenddate.valueOf(selqenddate)


                good:



                String.valueOf(selqenddate)


                Of course, you don't need to use String.valueOf() at all here because selquarter is a string, and substringBetween() also returns a string.



                Instead, you need to be using a method that takes a String as input, and gives you a Date as output such as Date.parse()






                share|improve this answer


























                  4












                  4








                  4







                  The string class's valueOf() method is a static method.



                  Static methods need to be called like this: Class.staticMethodName() i.e. String.valueOf()



                  What you're currently doing is using an instance of a string to try to call a static method, which (as the error indicates) is not allowed.



                  bad:



                  selqenddate.valueOf(selqenddate)


                  good:



                  String.valueOf(selqenddate)


                  Of course, you don't need to use String.valueOf() at all here because selquarter is a string, and substringBetween() also returns a string.



                  Instead, you need to be using a method that takes a String as input, and gives you a Date as output such as Date.parse()






                  share|improve this answer













                  The string class's valueOf() method is a static method.



                  Static methods need to be called like this: Class.staticMethodName() i.e. String.valueOf()



                  What you're currently doing is using an instance of a string to try to call a static method, which (as the error indicates) is not allowed.



                  bad:



                  selqenddate.valueOf(selqenddate)


                  good:



                  String.valueOf(selqenddate)


                  Of course, you don't need to use String.valueOf() at all here because selquarter is a string, and substringBetween() also returns a string.



                  Instead, you need to be using a method that takes a String as input, and gives you a Date as output such as Date.parse()







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 4 hours ago









                  Derek FDerek F

                  20.8k52353




                  20.8k52353

























                      1














                      As the error suggests, you are trying to use a static method valueOffrom String class on an instance of a String named selqenddate, which is not allowed.



                      You are most likely are trying to construct a date from a string value, and that you will need to utilize the Date.valueOf()instead. Your code should look like something as below:



                      Date startdate = 
                      (Date.valueOf(selqenddate))
                      .addMonths(-3)
                      .toStartOfMonth();


                      Note, there’s no property startOfMonth on Date class.






                      share|improve this answer




























                        1














                        As the error suggests, you are trying to use a static method valueOffrom String class on an instance of a String named selqenddate, which is not allowed.



                        You are most likely are trying to construct a date from a string value, and that you will need to utilize the Date.valueOf()instead. Your code should look like something as below:



                        Date startdate = 
                        (Date.valueOf(selqenddate))
                        .addMonths(-3)
                        .toStartOfMonth();


                        Note, there’s no property startOfMonth on Date class.






                        share|improve this answer


























                          1












                          1








                          1







                          As the error suggests, you are trying to use a static method valueOffrom String class on an instance of a String named selqenddate, which is not allowed.



                          You are most likely are trying to construct a date from a string value, and that you will need to utilize the Date.valueOf()instead. Your code should look like something as below:



                          Date startdate = 
                          (Date.valueOf(selqenddate))
                          .addMonths(-3)
                          .toStartOfMonth();


                          Note, there’s no property startOfMonth on Date class.






                          share|improve this answer













                          As the error suggests, you are trying to use a static method valueOffrom String class on an instance of a String named selqenddate, which is not allowed.



                          You are most likely are trying to construct a date from a string value, and that you will need to utilize the Date.valueOf()instead. Your code should look like something as below:



                          Date startdate = 
                          (Date.valueOf(selqenddate))
                          .addMonths(-3)
                          .toStartOfMonth();


                          Note, there’s no property startOfMonth on Date class.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 4 hours ago









                          Jayant DasJayant Das

                          17.4k21330




                          17.4k21330






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Salesforce Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f255997%2fwhy-am-i-getting-static-method-cannot-be-referenced-from-a-non-static-context%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Paper upload error, “Upload failed: The top margin is 0.715 in on page 3, which is below the required...

                              Emraan Hashmi Filmografia | Linki zewnętrzne | Menu nawigacyjneGulshan GroverGulshan...

                              How can I write this formula?newline and italics added with leqWhy does widehat behave differently if I...