Should you create a class within a method?
- by Amndeep7
I have made a program using Java that is an implementation of this project: http://nifty.stanford.edu/2009/stone-random-art/sml/index.html. Essentially, you create a mathematical expression and, using the pixel coordinate as input, make a picture. After I initially implemented this in serial, I then implemented it in parallel due to the fact that if the picture size is too large or if the mathematical expression is too complex (especially considering the fact that I made the expression recursively), it takes a really long time. During this process, I realized that I needed two classes which implemented the Runnable interface as I had to put in parameters for the run method, which you aren't allowed to do directly. One of these classes ended up being a medium sized static inner class (not large enough to make an independent class file for it though). The other though, just needed a few parameters to determine some indexes and the size of the for loop that I was making run in parallel - here it is:
class DataConversionRunnable implements Runnable
{
int jj, kk, w;
DataConversionRunnable(int column, int matrix, int wid)
{
jj = column;
kk = matrix;
w = wid;
}
public void run()
{
for(int i = 0; i < w; i++)
colorvals[kk][jj][i] = (int) ((raw[kk][jj][i] + 1.0) * 255 / 2.0);
increaseCounter();
}
}
My question is should I make it a static inner class or can I just create it in a method? What is the general programming convention followed in this case?