Why am I getting “Static method cannot be referenced from a non static context: String...
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
add a comment |
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
add a comment |
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
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
apex parameters static
edited Mar 31 at 21:54
Jayant Das
17.6k21330
17.6k21330
asked Mar 31 at 21:33
IreneIrene
5102418
5102418
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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()
add a comment |
As the error suggests, you are trying to use a static method valueOf
from 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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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()
add a comment |
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()
add a comment |
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()
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()
answered Mar 31 at 21:48
Derek FDerek F
20.8k52353
20.8k52353
add a comment |
add a comment |
As the error suggests, you are trying to use a static method valueOf
from 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.
add a comment |
As the error suggests, you are trying to use a static method valueOf
from 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.
add a comment |
As the error suggests, you are trying to use a static method valueOf
from 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.
As the error suggests, you are trying to use a static method valueOf
from 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.
answered Mar 31 at 21:51
Jayant DasJayant Das
17.6k21330
17.6k21330
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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