Calling Nested Class Constructor from main()
Consider the following code:
public class OuterClass {
static static void main(String[] args) {
NestedClass nc = new NestedClass()
class NestedClass {
NestedClass() {
//constructor logic here
}This call to the nested class constructor gives the following error: " 'OuterClass.this' cannot be referenced from a static context. However, if I cut and paste the code for NestedClass into its own class file, there are no error messages. I would like to be able to keep the class nested, so what do I need to do?
static static void main(String[] args) {
NestedClass nc = new NestedClass()
}public static void main(String[] args) {
NestedClass nc = new NestedClass()
}
Similar Messages
-
Is it possible to modify private member of a class directly from main?
This is the code which modifies the private String stk[] indirectly from main method when sorting option is called from main method:
import java.io.*;
class Stack
private String stk[];
private int tos;
private int size;
Stack()
size=5;
stk=new String[size];
tos=-1;
Stack(int sz)
size=sz;
stk=new String[size];
tos=-1;
boolean push(String s)
if(tos==size-1) return false;
stk[++tos]=s;
return true;
String pop()
if(tos<0) return "Stack Underflow";
return stk[tos--];
String[] display()//array type function to return an array called "stk"
return stk;
int returnSize()
return tos;
class myStack
public static void main(String args[]) throws IOException
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Stack S=new Stack();
int opt=-1;
while(opt!=6)
System.out.println("\n\n\n");
System.out.println("[1] - Create Stack");
System.out.println("[2] - Push");
System.out.println("[3] - Pop");
System.out.println("[4] - Display");
System.out.println("[5] - Display List In Ascending Order");
System.out.println("[6] - Exit");
System.out.print("Option: ");
opt=Integer.parseInt(br.readLine());
if(opt==1)
System.out.print("\n\nEnter the size of stack: ");
int size=Integer.parseInt(br.readLine());
S=new Stack(size);
System.out.print("\nStack Created...");
else if(opt==2)
System.out.print("\n\nEnter String: ");
String s=br.readLine();
if(S.push(s))
System.out.print("\nSuccessfull...");
else
System.out.print("\nStack Overflow...");
else if(opt==3)
System.out.print("\nItem Deleted: "+S.pop());
else if(opt==4)
int sz=S.returnSize();
System.out.print("\n\n\nStack Contains: "+(sz+1)+" Item(s)\n");
String st[]=S.display();
while(sz>=0)
System.out.println(st[sz]);
sz--;
else if(opt==5)
int s=S.returnSize();
String stc[]=S.display();
for(int i=0;i<=s;i++)
for(int j=i+1;j<=s;j++)
if(stc[j].compareTo(stc[i])<0)
String t=stc[i];
stc[i]=stc[j];
stc[j]=t;
System.out.println(stc[i]);
else if(opt>6)
System.out.print("\nPress 6 To Exit....");Actually, since it is returning the reference value of the array, and he is changing the array elements using that reference, then he IS "changing the array".
@OP: When you return a reference value to an object (and, in this regard, an array IS an object), then use that reference value to change things in the object (NOT assigning a new value to the variable holding that reference value), then, of course, those items are changed, and everything using that same reference value will "see" those changes, as they ALL point to the SAME object.
Edit: My first answer was going under the assumption that you meant DIRECTLY changing (i.e. stk = ...) since all you provided was the "title" and a blurb of code. Next time you should think about actually providing some information about the actual "problem".
See http://www.javaranch.com/campfire/StoryCups.jsp (to get associated with the "terms" they use)
then see http://www.javaranch.com/campfire/StoryPassBy.jsp for some easy to understand explanations of reference values and objects. -
Is it possible to modify private member of a class directly from main function?
This is the code which modifies the private String stk[] indirectly from main method when sorting option is called from main method:
import java.io.*;
class Stack
private String stk[];
private int tos;
private int size;
Stack()
size=5;
stk=new String[size];
tos=-1;
Stack(int sz)
size=sz;
stk=new String[size];
tos=-1;
boolean push(String s)
if(tos==size-1) return false;
stk[++tos]=s;
return true;
String pop()
if(tos<0) return "Stack Underflow";
return stk[tos--];
String[] display()//array type function to return an array called "stk"
return stk;
int returnSize()
return tos;
class myStack
public static void main(String args[]) throws IOException
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Stack S=new Stack();
int opt=-1;
while(opt!=6)
System.out.println("\n\n\n");
System.out.println("[1] - Create Stack");
System.out.println("[2] - Push");
System.out.println("[3] - Pop");
System.out.println("[4] - Display");
System.out.println("[5] - Display List In Ascending Order");
System.out.println("[6] - Exit");
System.out.print("Option: ");
opt=Integer.parseInt(br.readLine());
if(opt==1)
System.out.print("\n\nEnter the size of stack: ");
int size=Integer.parseInt(br.readLine());
S=new Stack(size);
System.out.print("\nStack Created...");
else if(opt==2)
System.out.print("\n\nEnter String: ");
String s=br.readLine();
if(S.push(s))
System.out.print("\nSuccessfull...");
else
System.out.print("\nStack Overflow...");
else if(opt==3)
System.out.print("\nItem Deleted: "+S.pop());
else if(opt==4)
int sz=S.returnSize();
System.out.print("\n\n\nStack Contains: "+(sz+1)+" Item(s)\n");
String st[]=S.display();
while(sz>=0)
System.out.println(st[sz]);
sz--;
else if(opt==5)
int s=S.returnSize();
String stc[]=S.display();
for(int i=0;i<=s;i++)
for(int j=i+1;j<=s;j++)
if(stc[j].compareTo(stc[i])<0)
String t=stc[i];
stc[i]=stc[j];
stc[j]=t;
System.out.println(stc[i]);
else if(opt>6)
System.out.print("\nPress 6 To Exit....");Short answer is: no.
Long answer is: you should not try to. Information hiding is the fundamental principle of OOP. This means that the code dealing with an object has no knowledge about the objects inner structure. It only knows the methods provided by its interface.
You should declare all object properties private and prevent any other code outside the owning class to manipulate it. This includes leaking properties via "getter" methods. In your example the display() method is bad in two ways:
its name does not convey its purpose.
it a "getter" that returns the private property stk to the caller who may change it. Eg. the caller could add or delete an entry without changing tos accordingly.
bye
TPD -
How to call java class file from jsp
hi
we need to call java classes (which are written separately in .java file )from jsp file. we need it for our project if anyone knows about please reply us.
bye
siva sankariyou can call the methods in a lot of ways. you could use scriptlets with the
<%@ page import="package.class"%> and then inside instantiate an object
<%
MyClass mc = new MyClass(parameters if any);
mc.theMethodYouWantToCall();
%>or as Madathil has stated,
or use the JSP tags
<jsp:useBean id="anyname" class="classname"/>and then use the getProperty tag
or even Custom Tags -
Accessing class var from main timeline
Hi all! Well I've been working on this for a couple of days
now and just can't seem to get it to work right...... I'm still
getting my feet wet with as3 and like it more and more everytime I
use it.... almost.
Anyways, here's where I'm running into trouble.
Here's a dumbed down version of my project with all the other
usless drivel excluded. Basically what I'm trying to do is declare
a var and give it a value in my class. Then I want to be able to
display that value on the stage and use it in the main timeline.
Seems simple enough....
I need to be able to pass the var from the class to the main
timeline for use.... Any help on this would be GREATLY appreciated.
Thanks.kglad, worked like a charm in my short test file... however
in my real world flash file the class takes a short time to
actually compute the value of the variable. If I fire the trace
from the main timeline it will display NaN b/c at the moment it
fires the value of the var doesn't exist b/c it has yet to be
calculated......
I don't really know the best way to delay this... would the
best way be to somehow add an event listener to listen to the var
to see when it is assigned a value?.... I'm open to suggestions.
btw, good catch on the assignment of a string value!!
Thanks! -
Call enhancement class method from Bus. workflow task
Hi all,
I recently enhanced a global class from SAP (add a new method). Now I would like to call it from a workflow task (ABAP Class object used in the task). So it seems that only "native" methods from the class itself can be selected for the object method of the task.
Same issue if I try to call it via secondary methods options...
Last idea I have before the repair is: retrieve the instance saved into the WF container via a custom class interfacing IF_IFS_SWF_CONTAINER_EXIT (program exit) and call the enhanced method from the method proposed in this interface.
Maybe someone had the same issue? Anyone could help or propose solution?
Many thanks in advance for your help,
KR,
OlivierI think it might qualify for an OSS message.
There was simmilar note for BADIs which was corrected: https://service.sap.com/sap/support/notes/1156392
CL_SWF_UTL_DEF_SERVICES which is used in PFTC to determine callable methods doesn't include enhancements when calling function SEO_CLASS_TYPEINFO_GET (parameter WITH_ENHANCEMENTS is default FALSE) -
Calling public class method from the servlet dopost() implementation
Hi!
My application is a simple application where i wrote a JSP page to enter the USERNAME and PASSWORD. And this JSP will call a HttpServlet
with in which i am calling another Java class ValidateUser which will check aginst the Oracle Database table whether that Username and password combination exists and returns the user's name.
But when i am trying to call that method is throwing me an error. here is the typical code i wrote.
servlet
package isispack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
public class Login extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException{
String userId = req.getParameter("user_id");
String password = req.getParameter("user_pass");
// if uName is null .. user is not authorized.
String uName = Validate(userId, password);
and
Validate class
package isispack;
import java.sql.*;
import java.util.*;
import java.lang.*;
public class ValidateUser
public String ValidateUser(String inputUserid, String inputPwd) throws
SQLException{
String returnString = null;
String dbUserid = "isis"; // our Database user id
String dbPassword = "isisos" ; // our Database password
Connection con = DriverManager.getConnection("jdbc:odbc:JdbcOdbcDriver","isis","osiris");
Statement stmt = con.createStatement();
String sql= "select user_id from isis_table where user_id = '" inputUserid + "' and user_pass= '" + inputPwd +"' ;" ;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next())
returnString = rs.getString("user_id");
stmt.close();
con.close();
return returnString ;
The ERROR
Error(18,18): method ValidateUser(java.lang.String, java.lang.String) not found in class isispack.Login
One more thing i forgot to tell you. I am trying to run this application on JDeveloper. Please helpme out if you can . Thank you.
-SreekanthOK! I made it static method
and tried to call the method as follows
String uName = ValidateUser.ValidateUser(userId, password);
even if i create the instence and
ValidateUser Validate;
then call
String uName= Validate.ValidateUser(userId,password)
In either case is giving me the following error.Tarun, am new to Java programming, please help me out. And can you please tell me where can i find things in consise to brush up my fundamentals?.
Error(18,43): unreported exception: java.sql.SQLException; must be caught or declared to be thrown -
Calling nested Batch files from Java
Hi,
I have a java program which loops through a list of batch files, executing each one. This works fine. My problem is that each batch file I execute contains a call to execute a further batch file.
The second(nested) batch file never gets run. The java program completes sucessfully though. Any ideas of a way around this?
Code:
while (batFileToken.hasMoreTokens()){
String batFileName = batFileToken.nextToken();
Process process = load.exec("cmd.exe /c "+batFileName);
process.waitFor();
}Each batFileName it executes contains the below command:
call test.battest.bat never executes.Check this link..
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
the way to make sure process is completed.. is
try{
Process proc = Runtime.getRuntime().exec(optimizer.exe);
StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");
StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
errorGobbler.start();
outputGobbler.start();
int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
catch (IOException ex1) {
System.out.println("Error in Starting Optimizer");
catch (Throwable t) {
t.printStackTrace();
class StreamGobbler extends Thread {
InputStream is;
String type;
OutputStream os;
StreamGobbler(InputStream is, String type) {
this(is, type, null);
StreamGobbler(InputStream is, String type, OutputStream redirect) {
this.is = is;
this.type = type;
this.os = redirect;
public void run() {
try {
PrintWriter pw = null;
if (os != null)
pw = new PrintWriter(os);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null) {
if (pw != null)
pw.println(line);
System.out.println(type + ">" + line);
if (pw != null)
pw.flush();
catch (IOException ioe) {
ioe.printStackTrace();
} -
How to call a class method from a jsp page?
Hi all,
i would like to create a basic jsp page in jdev 1013 that contains a button and a text field. When clicking the button, i would like to call a method that returns a string into the text field.
The class could be something like this:
public class Class1 {
public String getResult() {
return "Hello World";
How do i go about this?
ThanksHere is a sample:
HTML><HEAD><TITLE>Test JDBC for Oracle Support</TITLE></HEAD><BODY>
<%@ page import="java.sql.*, oracle.jdbc.*, oracle.jdbc.pool.OracleDataSource" %>
<% if (request.getParameter("user")==null) { %>
<FORM method="post" action="testjdbc.jsp">
<H1>Enter connection Parameters</H1>
<H5>Please enter host name:</H5><INPUT TYPE="text" name="hostname" value="localhost" />
<H5>Please enter port number:</H5><INPUT TYPE="text" name="port" value="1521" />
<H5>Service nanme:</H5><INPUT TYPE="text" name="service" value="XE" />
<H5>Please enter username: </H5><INPUT TYPE="text" name="user" />
<H5>Please enter password</H5><INPUT TYPE="password" name="password" />
<INPUT TYPE="submit" />
</FORM>
<% } else { %>
<%
String hostName = request.getParameter("hostname");
String portNumber = request.getParameter("port");
String service = request.getParameter("service");
String user = request.getParameter("user");
String password = request.getParameter("password");
String url = "jdbc:oracle:thin:" + user + "/" + password + "@//" + hostName + ":" + portNumber + "/" + service;
try {
OracleDataSource ods = new OracleDataSource();
ods.setURL(url);
Connection conn = ods.getConnection();
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver information
out.println("<TABLE>");
out.println("<TR><TD>");
out.println("<B>JDBC Driver version</B>");
out.println("</TD>");
out.println("<TD>");
out.println(meta.getDriverVersion());
out.println("</TD>");
out.println("</TR>");
out.println("<TR><TD>");
out.println("<B>JDBC Driver Name</B>");
out.println("</TD>");
out.println("<TD>");
out.println(meta.getDriverName());
out.println("</TD>");
out.println("</TR>");
out.println("<TR><TD>");
out.println("<B>JDBC URL</B>");
out.println("</TD>");
out.println("<TD>");
out.println(meta.getURL());
out.println("</TD>");
out.println("<TABLE>");
conn.close();
} catch (Exception e) {e.printStackTrace(); }
%>
<%-- end else if --%>
<% } %>
</BODY>
</HTML> -
Calling a class method from another class
how can i call a method / function of one class without extending that class in another class.
and one thing more i want want o check wether any Swing gui is open or closed.how can i call a method / function of one class without extending that class in another class.What?... Umm... You just call it... as in Foo.bar("doe ray me");
i want want to check if any Swing gui is open or closed.Ummm, what? I don't understand the question. Do you mean find out if a particular java programming is allready running, of do you mean is the JPanel visible, or something else? -
Can we call super class method from Overwrite method using SUPER keyword
Hi All,
For one of our requirement , I need to overwrite "Process Event" method of a feeder class ,where process event is present is protected method. so when we are making a call , then its saying
"Method "process event" is unknown or Protected or PRIVATE ".
But we are just copied the source code in the "Process Event" method to the Overwrite method.
Can anyone provide me the clarification , why system behaving like this.
Thanks
ChannaHi,
I think you can not.
Because, only public attributes can be inherited and they will remain public in the subclass.
for further detail check,
http://help.sap.com/saphelp_nw70/helpdata/en/1d/df5f57127111d3b9390000e8353423/content.htm
regards,
Anirban -
Calling ABAP class methods from JAVA application
Hi All,
I want to fetch ITS related information (SITSPMON Tcode) in my JAVA application. But i didnt find much BAPIs for the same. While debugging I came accross few class methods with help of which I can get the required information. So is there any way we can call and execute methods of ABAP classes through java application?
for e.g. I want to call GET_VERSION method of CL_ITSP_UTIL class.
Thanks,
Arati.Hi,
Yes, as per my knowledge the only way to interact is using BAPI exposed as RFCs. So try to invoke those class methods in one CUSTOM BAPI and expose that BAPI as RFC and consume that RFC to get those details.
Regards,
Charan -
Calling sub class method from superclass constructure
hi all
i have seen a program in which a super class constructure class methods of sub class before initialization of fields in subclass ,i want how this is posibble ?
thanks in advanceHear is the code n other thing i have used final variable without initialization n compiler dosen't report error
abstract class Test
public Test()
System.out.println("In DemoClass Constructer");
this.show();
public void show()
System.out.println("In DemoClass Show() method");
class Sub1 extends Test
private final float number;
public Sub1(float n)
this.number=n;
System.out.println((new StringBuilder()).append("Number is==").append(number).toString());
int j;
public void show()
System.out.println("In Sub1 Class Show method ");
public class DemoClass
public static void main(String s[])
Sub1 obj1=new Sub1(5);
Sub1 obj2=new Sub1(6);
thanks for reply -
How to call nested table type from Java
I needed a 2 dimensional array and asked the questuion here.
[Original thread| http://forums.oracle.com/forums/message.jspa?messageID=3419944#3419944]
I have my program working correctly in pl/sql.
The java guys are building this array and passing it in to me, but they don't know how.
A small example of this would be appreciated.
Heres an example of the procedure prototype and the type definitions in use
create or replace
type csn_array_obj
as object
(csn varchar2(20 char),
box_id varchar2(10)
create or replace
type csn_array_type is table of csn_array_obj;
procedure populate_stock(
p_csn_array in csn_array_type
added in example of object and type definition.There's an orl Oramag article by Tom Kyte rounding up [some Java tips|http://asktom.oracle.com/tkyte/omag/00-nov/o60tom.html] which includes an example of how to do this. You'll need to replace Tom's SIMPLARRAY with your own type.
Cheers, APC
blog: http://radiofreetooting.blogspot.com -
Hi All,
i have written my class file and main class separately, so how to call the class file from main which is written separately.
If possible provide quick response!i have written my class file and main class
separately, so how to call the class file from main
which is written separately.By instantiating it in the your main-method.
Example:
// inside main(...)
ClassFile anInstanceOfClassFile = new ClassFile();
// ...
Maybe you are looking for
-
Aperture and "AAE extensions" on images
Trying to import photos from iPhone 5S to Aperture on iMac running OS X (10.9.5) following phone upgrade to iOS 8.0.2. Images now have an 'AAE extension' which Aperture does not recognize. What to do?
-
Dear all . My datasource 0HR_PA_1 IS FETCHING DATA FROM INFOTYPE PA0000 AND PA0302 . BUT WHILE EXTRACTING IT IS NOT EXTRACTING ALL THE VALUES FOR FIELDS AVAILBALE IN THE DATASOURCE . FEW VALUES ARE NOT COMING . IN HELP THEY HAVE GIVEN Depending on yo
-
Did anyone else get a text offering an apple iphone 5 to test?
I received a text from a New York City land line and it directed me to the following website: www.apple.com.todayswinners.info/?id=fbclbccfpk Anyone know what this is?
-
Hi, I am new to the portal.I have a requirement: The language field in the User Admin displaying a blank.So the portal is taking Browser's language. I want to display en as default in the Language field in the User Admin.For this I have to change the
-
T2i suddenly produces way over exposed images
About four years ago my friend bought the T2i with the 100 to 400 lens and the 1.4 extender. Until recently he loved that rig, but it suddenly started producing way over exposed images. He adjusted the exposure comp to two stops under exposed but sti