The Java Tutorials have been written for JDK 8.Java教程是为JDK 8编写的。Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.本页中描述的示例和实践没有利用后续版本中引入的改进,并且可能使用不再可用的技术。See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.有关Java SE 9及其后续版本中更新的语言特性的摘要,请参阅Java语言更改。
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.有关所有JDK版本的新功能、增强功能以及已删除或不推荐的选项的信息,请参阅JDK发行说明。
The Context interface contains methods for adding, replacing, and removing a binding in a context.
Context.bind() is used to add a binding to a context. It accepts as arguments the name of the object and the object to be bound.
Before you go on: The examples in this lesson require that you make additions to the schema. You must either turn off schema-checking in the LDAP server or add the schema
that accompanies this tutorial to the server. Both of these tasks are typically performed by the directory server's administrator. See the LDAP Setuplesson.
// Create the object to be bound Fruit fruit = new Fruit("orange"); // Perform the bind ctx.bind("cn=Favorite Fruit", fruit);
This example
creates an object of class Fruit
and binds it to the name "cn=Favorite Fruit" in the context ctx. If you subsequently looked up the name "cn=Favorite Fruit" in ctx, then you would get the fruit object. Note that to compile the Fruit class, you need the FruitFactory
class.
If you were to run this example twice, then the second attempt would fail with a NameAlreadyBoundException. This is because the name "cn=Favorite Fruit" is already bound. For the second attempt to succeed, you would have to use rebind().
rebind() is used to add or replace a binding. It accepts the same arguments as bind(), but the semantics are such that if the name is already bound, then it will be unbound and the newly given object will be bound.
// Create the object to be bound Fruit fruit = new Fruit("lemon"); // Perform the bind ctx.rebind("cn=Favorite Fruit", fruit);
When you run this example
, it will replace the binding created by the bind()
example.
To remove a binding, you use unbind().
// Remove the binding ctx.unbind("cn=Favorite Fruit");
This example
, when run, removes the binding that was created by the bind()
or rebind()
example.