Comments (2)
Hi, @inshua
You can create an expression for a new local variable using the Expression#let
method.
To create a for
cycle you can omit creating a local variable i
manually and use the Expression#iterate
method that generates a for
cycle for you.
Letβs say you have an interface Counter
:
public interface Counter {
int countSum();
}
and you want to generate a class that implements countSum()
like this:
public int countSum() {
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
return sum;
}
You can do this with the following expression:
Counter counter = ClassBuilder.create(Counter.class)
.withMethod("countSum",
let(value(0), sum ->
sequence(
iterate(
value(0),
value(100),
i -> set(sum, add(sum, i))),
sum
)))
.defineClassAndCreateInstance(DefiningClassLoader.create());
First, you create a local variable sum
and set it to 0. That is let(value(0), sum -> β¦)
. Then you iterate from 0 to 100 and set sum
to be equal to a sum of i
and sum
.
You need to use the sequence()
expression and pass sum
as the last argument in order to instruct the method that it needs to return the sum
in the end.
The above example refers to the master-5.5
branch. let()
, value()
, sequence()
, iterate()
, set()
, add()
methods are imported from the Expressions
class.
from activej.
@eduard-vasinskyi thank you for response.
Got it, I understand why it's so designed now, this will make a life scope for a variable, like sum
in above. Thank you.
from activej.
Related Issues (20)
- RPCClient lock port on local HOT 1
- Version 6 does not support ipv6, version 5.5 supported ipv6 HOT 2
- Make classes Public to facilitate mocking. HOT 1
- RpcClient receive unexpected EOS HOT 2
- RpcClient cannot setup connection
- RpcServer serializer is wrong HOT 4
- Happen error with Serializer in native app HOT 2
- sorry a local problem
- How to hook the end of the HttpResponse so I can clean up some buffers? HOT 4
- Unknown characters when read messages from the websocket HOT 1
- Is it possible to Run a MultiThread Rpc Server? HOT 2
- HttpRequest with custom Host header HOT 1
- HttpServer under PrimaryServer can't handle SSL requests HOT 2
- Is it possible to use @Eager with @Inject on constructor? HOT 1
- Current DNS Client is Incompatible with Kubernetes Deployment HOT 5
- Support self define ThreadFactory for eventloop threads HOT 1
- Getting post parameters does not work HOT 1
- Inject instances as fields, not parameters HOT 2
- Add getOriginalMessage method to HttpError to retrieve original exception message HOT 2
- Implement attribute system for HttpRequest HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from activej.