Static Method Or Static Block
Sep 8, 2013Which is more efficient static block or static method ?
View RepliesWhich is more efficient static block or static method ?
View RepliesOne of my friend asked me that which will load first static variable or static block ? My answer was to static variable.. So he gave me two program and said to differentiate between them
1st program
public class Test {
public static void main(String args[])
{
System.out.println(Test.x);
}
static {
System.out.println(Test.x);
[Code] ....
Output of this :
90
90
I tried to decompile the byte code and found it's same for both the above equation. How to differentiate between them. I am confused when the static variable will initialised.
This is my code inside the method:
@Post
public static String getDetails(Representation entity) throws Exception {
String customerId = getQuery().getValues("cus_id");
}
I use this code in Restlet Representation. I try to get the value from the Request API. But I am facing the problem as "Cannot make a static reference to the non-static method getQuery() from the type Resource".
From what i understand static methods should be called without creating an instance of the same class . If so why would they return an instance of the same class like in the following : public static Location locateLargest(double[][] a) , the Location class being the same class where the method is defined . I don't understand this , does it mean that every field and every method in the class must be static ? Meaning that you cannot have instances of the class because everything is static . Or it's just a mistake and the class Location cannot have a static method: public static Location locateLargest(double[][] a) ?
View Replies View RelatedI can't figure out what this error message "Cannot make a static reference to the non-static method getEndUserCharge(long, long, long, long) from the type UpdateUserWS" actually means.
The error is coming from:
public void updateDetailsPackage() {
some unrelated code
long zero=0;
double endUserCharge=0;
endUserCharge = UpdateUserWS.getEndUserCharge(long zero, long zero, long zero, long zero); <-------- error is here
[Code] ....
Alright, I have two classes, this one
public class Player {
private String player;
public String getPlayer() {
return player;
}
private int strength;
private int defense;
[Code] .....
However, it says that under Player.getPlayer() that it 'Cannot make a static reference to the non-static method'.
Why I can create an Instance of a class that contains non static variables within the static main method ?
This program runs fine
import java.util.*;
public class Test{
public int j;
public static void main(String[] args) {
Test test1=new Test();
System.out.println(test1.j);
[Code] .....
I'm working on a banking program that is supposed to use 3 classes (Account-base class, CheckingAccount, and SavingsAccount) and several methods to display the banking information (ID, balance after a withdrawal and deposit, and the annual interest rate). This should be a pretty simple program, but I'm getting hung up on one portion of it. I'm getting some compiler errors, all of which deal with non-static variables being called from a static context (I'll also post these errors following the code). Up until the middle of last week, we just declared everything as static, but that's changed and I'm having trouble figuring out when to and when not to use static when declaring my methods, hence the compiler errors.
import java.util.Date;
public class Account {
private int id = 0;
private double balance = 0;
private double annualInterestRate = 0;
private Date dateCreated = new Date();
[Code] ....
Here are the compiler errors I am receiving:
Compilation completed. The following files were not compiled:
6 errors found:
File: C:UsersHiTechRedneckDesktopSummer II 2014Computer Programming PrincipleProgram 5CheckingAccount.java [line: 7]
Error: non-static method getId() cannot be referenced from a static context
[Code] .....
I had a TestColor class which contained methods to change hue, saturation, brightness, red, green, blue of TestColor's instances but also had static methods which take in an additional parameter for an instance of TestColor and returns the affected instance of TestColor. Now instead of having one method for every possible color effect to be applied to an image, how can I have one method that takes in an Image parameter, a static or non-static method reference from TestColor parameter and lastly an intensnity value parameter. This is so that I can make an affectedImage object instance inside the method and a Graphics2D object for drawing to each pixel of the new image, now I have one for loop and one nested for loop for the x and y pixels of width and height of the old image and inside the nested for loop I'd create a TestColor by calling getRGB on the image's pixel. Then I would apply the static or non-static method reference somehow to change the color with the intensnity value and after applying it draw to the new Image with Graphics2D. How to would I parametize a method reference and be able to use it in such way?
View Replies View RelatedOne class having two method one as static n another as non-static, 2 threads are there t1 is accessing the static method and t2 the non-static method is it possible n both are sharing the same object.
I now we have two kinds of lock one is object level lock and another is class level lock
I am trying to compile the following code where the entry point is Main.java but i am getting the following error "Error non-static method add(int[]) cannot be referenced from a static context in Java " ....
If i add the keyword static in add method of A.java it works properly......
Class Main.java code
package com.company;
public class Main {
public int [] a= new int[]{1,2,3};
public static void main(String[] args) {
Main n= new Main();
[Code]...
Both the classes are in same package
why Static Block in java executes first than the main block?
what is specific reason??
Take this:
class test
{
static int i=j;
static int j=10;
.....
this will give illegal forward reference ....
but this will compile successfully ..
class test
{
static int i=test1();
static test1()
{
return 20;
}
}
.....
plz assume we have main method in both cases ..
java would be loading all static members first and would be assigning default values .. and then will be running all the initializers from to bottom ..Why second case is a compile success and not first .. as in second also test1 method is declared after its usage ..
class Test
{
static Test ref;
String[] arguments;
public void func(String[] args)
{
ref.arguments = args;
[code]...
This code run perfectly.But the static method is acessing a non static method which was supposed to be not possible.
We know that a non static method can not be directly refrenced from static method but in the example given below there is no such error.Why?
class A
{
private void display()
{
System.out.println("In A");
}
public static void invoke (A x)
{
x.display();
[code]....
In above case a non static method display() is being invoked from static method invoke ()but it is not giving error.why?
I am trying to call an actionListener which is shown below in my PSVM :
class testMenuItemListener implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
getContentPane().removeAll();
createPanel();
getContentPane().add(panel1); //Adding to content pane, not to Frame
repaint();
printAll(getGraphics()); //Extort print all content
[Code] .....
I get the following error :
Frame.java:409: error: non-static variable this cannot be referenced from a static context
menuItem1.addActionListener(new testMenuItemListener());
I am trying to add a field (called special) to a hibernate table. I am copying existing code (related to the NAME field) so I don't have to figure this out from scratch. I am getting the error
"[ERROR] C:VOXvoxware-1.1.13voxwarevoxware-implsrcmainjavacomvoxwareimplflowVoxFlowConfiguration.java:[213,38] error: non-static variable special cannot be referenced from a static context".
Line 213 is in public void mergeFrom, the actual line is "special = VoxFlowConfiguration.special;" I don't understand why Java thinks special is a "non-static" variable but it doesn't have a problem with the other variables (such as name, orderShow)
package com.voxware.impl.flow;
import com.voxware.asset.LiabilityType;
import com.voxware.flow.FlowConfiguration;
import com.voxware.flow.OrderFlow;
import com.voxware.flow.Step;
import com.voxware.i18n.LanguageCodes;
import com.voxware.impl.i18n.UTF8Control;
import com.voxware.impl.persistence.BaseEntity;
import com.voxware.impl.portal.VoxPortal;
[code]....
I am trying to call an actionListener which is shown below in my PSVM :
class testMenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent arg0) {
getContentPane().removeAll();
createPanel();
getContentPane().add(panel1); //Adding to content pane, not to Frame
repaint();
[Code] .....
I get the following error :
Frame.java:409: error: non-static variable this cannot be referenced from a static context
menuItem1.addActionListener(new testMenuItemListener());
I am writing the following program in Java SE 7. It throwing "Cannot make a static reference to the non-static type String" . However if I write parameterised String inside main method as java.lang.String[] args, it compiles fine.
class MainClass<String> {
<T> MainClass(T t) {
System.out.println(t.getClass().getName());
}
public static void main(String[] args) {
System.out.println("asdasd");
new MainClass<>("");
}
}
I mean following programs compile fine in Java SE 7 :
class MainClass<String> {
<T> MainClass(T t) {
System.out.println(t.getClass().getName());
}
public static void main(java.lang.String[] args) {
System.out.println("asdasd");
new MainClass<>("");
}
}
i am trying to make something, and i want to request input from user and it shoud look like this
1. xxx -> press 1 to choose this
2. xxx -> press 2 to choose this
So if they enter 3 or string or whatever i want to restart method and show again
1. xxx -> press 1 to choose this
2. xxx -> press 2 to choose this
So here is method that i am trying to restart
public static void askUser(){
System.out.println("xxx");
System.out.println("1. xxx");
System.out.println("2. xxx");
System.out.println("3. xxx");
[code]....
If i try to make it public void than it say can't call non-static methods inside static(main).if i try to put it into new class and then call it after i fail input it goes into infinite loop.
The error said : Non Static Variable TAShaReport Cannot referenced from a static context
I just want to put the output in the TextArea
Here is the code :
public static String DeduplicateFiles(String myFolderLocation) {
try {
HashSet<String> newset = new HashSet<>();
File folder = new File(myFolderLocation); //Directory where the files are located
File[] listOfFiles = folder.listFiles();
[Code] .....
This is a someway special question, because I am using jmonkeyEngine.
But the topic is simple:
I have 2 classes:
public class Spielbrett extends SimpleApplication {
public static void main(String[] args) {
Spielbrett app = new Spielbrett();
app.start();
}
@Override
public void simpleInitApp() {
[Code]...
as the main class and a second class for the chips:
public class Spielstein {
public Spatial stone;
public int player;
public int team;
private AssetManager assetManager = Spielstein.getAM(); //THIS IS THE PROBLEM
public Spielstein(int t_player, int t_team){
[Code]...
My problem is: I can't access getAM() from the first in the second class. If you know why I would be glad for an answer.
This is the overall code:
public class Bank {
/**
* Customer class.
*/
public class Customer {
private String firstName, lastName, street, city, state, zip;
[Code] .....
The error occurs when I attempt to create the new object Account within the main arguments here:
Account munozAccount = new Account(250, "Maria", "Munoz", "110 Glades Road", "Mytown", "FL", "33445");
I'm not sure how to access the generator method, so i'm completely stumped.
package Experimentation;
import javax.swing.*;
import java.awt.event.*;
public class SimpleGUI1B implements ActionListener {
JButton button;
public static void main(String[] args) {
SimpleGUI1B gui = new SimpleGUI1B();
gui.go();
[code]...
This is a program from Head First Java! since main is static it shouldn't be able to call non-static methods because statics do not use any instance variable values but in the above program we're call a non-static method go() how is it possible?
I’m trying to understand how to decide when to make a nested class static or non-static. These are my assumptions.
1) Make a nested class static if each instance of its enclosing class may have one or more instances of its nested class, for example, a HashMap has a static HashMap.Entry nested class because each HashMap instance may have one or more HashMap.Entry instances
2) Make a nested class non-static if each instance of its enclosing class must have only one instance of its nested class, for example, an AbstractButton has a non-static AbstractButton.Handler nested class because each AbstractButton instance must have only one AbstractButton.Handler instance.
I wrote a code to use static class. But, when I call the class in a outer class but, it gives an error. Is it mandatory to have a static class should have static variables when we declaring them??
public class StaticClassMain {
static class Sub{
String str="Example 1";
}
public static void main(String[] args) {
System.out.println(Sub.str);
}
}